小玩CTF:Friday计划

[网鼎杯 2018]Fakebook 1

访问初始页面,进行目录爆破

image

发现请求过快,导致服务器报错

image

我们将线程调小,重新爆破

image

我们对目录爆破的结果进行分析,这里我们直接看相似度

flag.php

robots.txt -> user.php.bak

image

我们把user.php.bak下载下来

image

后面访问页面,对所有页面后缀添加bak,只发现了这一个备份文件

暂时无法直接利用,我们尝试爆破用户名密码(无果)

join页面进行注册,进入系统,发现一个注入点

同时也获取到了路径信息

image

sql注入

判断闭合方式(能正常回显,无需引号)

image

判断列数(order by 5开始报错,共4列)

image

尝试union注入,发现被过滤(挨个删掉payload进行分析,过滤的字符串是union select,我们双写空格进行绕过,也可以通过/**/注释替换空格进行绕过)

image

判断回显位置(是在第二个位置进行回显)

image

接下来就能愉快查询数据了(略)

image

get flag的两种方法

前面已有的信息:flag.php、user.php.bak、sql注入

而且我们还能在数据包中发现路径信息(是默认路径)

法一:

简单粗暴,直接load_file()

image

法二:

查数据,可以发现在users的data为序列化数据(这个数据是注册的信息,比较长是因为我注册了多个账号)

我们可以通过sql语句控制查询结果,序列化出payload来进行ssrf

image

将payload修改为file:///var/www/html/flag.php

ps:这里不在注册的时候直接写入payload是因为注册时对url有校验
ps:这里还需要挨个位置进行尝试,当payload放在第4位的时候生效

 union  select 1111,22222,33333,(select 'O:8:"UserInfo":3:{s:4:"name";s:5:"admin";s:3:"age";i:10;s:4:"blog";s:29:"file:///var/www/html/flag.php";}')#

[BSidesCF 2020]Had a bad day

爆破目录

存在flag.php

image

查看前端代码(无有用信息)

image

初始页面有2个按钮,点击跳转到一个展示图片的页面

image

图片路径http://xxx/img/dog/6.jpg

发现/img/dog/数字.jpg里面只有若干狗狗图片

直接访问/img/img/dog(无果)

文件包含

查看题目给的源码index.php

image

要绕过strpos并且打印php代码,那就是伪协议

php://filter/read=convert.base64-encode/index/resource=文件名字

此处文件名字已经拼接了.php,所以只需要flag即可

接下来就是绕过strpos,有两种方法添加脏数据进行绕过

  • 路径:php://filter/read=convert.base64-encode/resource=./index/../flag

  • 伪协议:php://filter/read=convert.base64-encode/index/resource=flag

之后发送payload即可得到base64的flag

image

posted @ 2024-11-22 15:48  aixve  阅读(13)  评论(0)    收藏  举报