CheckIn
题目打开就是一个上传点
经过初步测试发现可以上传jpg、png、htaccess等文件,用exif_image函数来判断上传文件头,限制了php文件且文件内容里不能包含<?
,,但可以上传<script language='php'><scirpt>
类型的图片马来绕过。
尝试上传htaccess文件,发现无效,因为利用htaccess需要有两个前提条件1.mod_rewrite模块开启。2.AllowOverride All
。(PS:原来作者出题时过滤了htaccess,只不过过滤时打成了htacess)
最后参考大牛的可以上传.user.ini
文件,第一次遇到,贴一下链接:https://wooyun.js.org/drops/user.ini%E6%96%87%E4%BB%B6%E6%9E%84%E6%88%90%E7%9A%84PHP%E5%90%8E%E9%97%A8.html
不过利用这个漏洞也有个前提条件:上传文件夹下需要有正常的php文件,这题刚好上传目录下有个index.php刚好满足。
Pythonginx
打开题目查看源代码即可拿到源码
@app.route('/getUrl', methods=['GET', 'POST'])
def getUrl():
url = request.args.get("url")
host = parse.urlparse(url).hostname
if host == 'suctf.cc':
return "我扌 your problem? 111"
parts = list(urlsplit(url))
host = parts[1]
if host == 'suctf.cc':
return "我扌 your problem? 222 " + host
newhost = []
for h in host.split('.'):
newhost.append(h.encode('idna').decode('utf-8'))
parts[1] = '.'.join(newhost)
#去掉 url 中的空格
finalUrl = urlunsplit(parts).split(' ')[