一些知识
传参控制地址
- 有些网站控制目录不是/1/index.php,而是.index.php?a=/1/index.php,通过传参控制网址
pregreplace绕过
- 对函数名进行过滤,如果是将黑名单替换为空白字符,就可以双写绕过,如拦截hello,可以输入hhelloello被拦截后变成hello
- 对文件名进行过滤,可以使用通配符绕过,比如拦截flag,可以输入文件名为f*,意思是所有开头为f的文件
linux下查看文件的函数汇总
适用条件:过滤了cat
1)more:一页一页的显示档案内容
(2)less:与 more 类似,但是比 more 更好的是,他可以[pg dn][pg up]翻页
(3)head:查看头几行
(4)tac:从最后一行开始显示,可以看出 tac 是 cat 的反向显示
(5)tail:查看尾几行
(6)nl:显示的时候,顺便输出行号
(7)od:以二进制的方式读取档案内容
(8)vi:一种编辑器,这个也可以查看
(9)vim:一种编辑器,这个也可以查看
(10)sort:可以查看
(11)uniq:可以查看
(12)file -f:报错出具体内容
grep grep test *file #在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行
wp
Where_U_from
- 页面提示以本地身份访问/flaggeeee,伪造refer和xff提示需要登录,再修改cookie伪造登录状态即可
Myrobots
- Where is my Robots?查询发现robots.txt是网站给爬虫程序的许可文件,于是访问这个文件,提示flag in FFFFl3gggg.txt,再次访问得到flag(出题方把flag打错了,需要把g换成G)
login
- emmm~没思路就扫描目录吧(虽然主办方提前说了禁止扫描目录),扫描得到login.php和admin.php,后者无法访问,尝试bp爆破密码(账户猜测为admin),这里有个小坑,密码框提示5位密码很安全,然而密码是4位的,字典爆破电脑可能没法,只能才猜测密码是纯数字,爆破得1234,进去是一个日记,查看源代码提示flag in /tmp/flag,直接根目录访问这个网页发现没有,观察网址admin.php?f=dogs_diary/d2,猜测参数f可能是控制目录的,于是访问?f=/tmp/flag得到flag
Ez_rce
- 需要php调用系统函数查看flag内容,第一个pregreplace将黑名单替换为空白,存在漏洞,双写绕过(见上),第二关无法绕过,但是并没有将可以查看文件内容的函数禁用完,可以使用strings或者sort函数来查看文件,flag也被过滤了,但是可以使用通配符绕过(见上),所以传入ssystemystem和sort /f*(可以先用ls看一下发现网站目录没有flag,一般flag不在网站目录就在linux根目录下)