攻防世界--fakebook

进入环境,发现是一个账户登录注册的界面,使用dirsearch进行扫描,扫描到了login.php,robots.txt,view.php均访问一下,看到robots.txt文件中存在一个user.php.bak文件,删除bak后缀,发现是php源码文件。

先不管,我去试试注册一个账户。注意blog处必须是网址, 

 登录进去,点击用户名,查看源码,没发现什么有用的信息,看到一个src观察观察url,测试是否存在sql或模板注入。

 输入’报错,存在sql注入,且为数字型,使用报错注入,返回一句 no hack 猜测使用黑名单了,使用联合查询,同样的问题。看了别人的wp,说这里是检查了union select ,可以使用/**/或++进行绕过。没回显,修改原始参数为2,果然又是只显示了一条查询。

这里得到第二字段会回显,并且文件位置在/var/www/html/view.php。继续注入,得到数据库中存在一个users表,表中含有no,username,passwd,data,USER,CURRENT_CONNECTIONS,TOTAL_CONNECTIONS 字段,查看username,passwd字段内容,不对,这个内容就是我刚刚注册的,没有其他用户的,对我来说没用啊,看看data字段,返回值是序列化后的值

 这个值和刚刚下载的源码能对上,然后我不知道怎么利用了,回去看源码,进行代码审计,curl可以使用伪协议file:///文件路径查看文件。

猜测我们的四个字段分别是no,username,passwd,data,而blog刚好是字段data的参数值,所以我们在这里进行一个传参,这个参数需要使用序列化后 的值。构造payload:?no=2 union/**/ select 1,2,3,'O:8:"UserInfo":3:{s:4:"name";s:1:"1";s:3:"age";i:18;s:4:"blog";s:29:"file:///var/www/html/flag.php";}',查看源码,得到编码后的flag值,本来像复制然后解码,结果直接跳转了

 

 得到flag:flag{c1e552fdf77049fabf65168f22f7aeab}

第二种方法是直接使用mysql中的load_file()函数读取一个文件,并将内容作为字符串返回。

构造payload:2 /**/union /**/ select 1,load_file('/var/www/html/flag.php') ,3,4#

查看源码,得到flag。

 借鉴博客:(7条消息) 攻防世界——fakebook_攻防世界fakebook_隐身的菜鸟的博客-CSDN博客

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值