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即可。
  



















