攻防世界Web之fakebook
打开题目,得到一个网页,包含一个表格、两个按钮。
文章图片
习惯性先查看网页源码,但没发现有效信息。
Fakebook - 锐客网 the FakebookShare your stories with friends, family and friends from all over the world on Fakebook
.
#
username
age
blog
打开
login.php
,是一个登录页面,随手试了几个弱口令和SQL注入,没有成功,查看网页源码,也没有提示,估计问题不在这。![攻防世界Web之fakebook](https://img.it610.com/image/info8/f68e9beaab7b4761af0800cd9bc364ae.jpg)
文章图片
打开
join.php
页面,随便输入一点东西提交,都提示错误:Blog is not valid.
,说明对blog
字段的格式有要求,从字面和题目信息上理解,就是分享你的故事,应该没什么限制才对。![攻防世界Web之fakebook](https://img.it610.com/image/info8/c035a3e475514d3181550c55f25a5339.jpg)
文章图片
![攻防世界Web之fakebook](https://img.it610.com/image/info8/3c688735e13b4ac582a8c29d73f5de1e.jpg)
文章图片
后来想了一下,可能是需要提交一个博客地址,尝试提交
http://127.0.0.1
和http://localhost
,均提示错误。![攻防世界Web之fakebook](https://img.it610.com/image/info8/c4f38e5dbd5942489130cb33b4a4e2e0.jpg)
文章图片
猜测可能过滤了
127.0.0.1
和localhost
关键字,随手试一下www.baidu.com
,此时提示成功。![攻防世界Web之fakebook](https://img.it610.com/image/info8/22ddd503cd7a4618a7a8aaef123ea557.jpg)
文章图片
再次打开首页,发现多了一条记录。
![攻防世界Web之fakebook](https://img.it610.com/image/info8/2f03c864dcc94a048b0de29e6707b864.jpg)
文章图片
点击用户名
111
,打开一个页面,看到the contents of his/her blog
,兴奋了一下,不会是ssrf吧?![攻防世界Web之fakebook](https://img.it610.com/image/info8/c4d691899d5e408097e99cfa2c7d9167.jpg)
文章图片
直接查看源码,发现是空的
base64
。![攻防世界Web之fakebook](https://img.it610.com/image/info8/88f23640509346febd055dce953064b4.jpg)
文章图片
直接上DNSLOG试试,也不行。到这里思路就断了,重新整理了一下,发现被绕进去了,问题不一定在
blog
字段,这个用户名和年龄是有回显的,猜测是XSS或二次注入,直接排除XSS,试一下注入吧。好家伙,直接报错,把Web路径报出来了,明显是SQL注入。
![攻防世界Web之fakebook](https://img.it610.com/image/info8/ba5fb85ae40f4ffc8b672f08f58fd752.jpg)
文章图片
尝试了一下插入已存在的用户名时会提示用户名已存在,说明后台会先在数据库中查找用户是否存在,可以用图中的SQL注入绕过检测。
![攻防世界Web之fakebook](https://img.it610.com/image/info8/d56528be580b4c5aba68fa08d6a08142.jpg)
文章图片
猜测后台SQL语句如下:
# 检查用户是否存在
SELECT * FROM user WHERE username='';
# 插入新的记录
INSERT INTO user SET username='',passwd='',age='',blog='';
但是插入数据时,注入的用户名会被直接写入数据库,说明写入的时候用SQL预编译,无法注入。
![攻防世界Web之fakebook](https://img.it610.com/image/info8/8eaf4508c5b34fd0b40e724279653f5b.jpg)
文章图片
直接用sqlmap跑,没发现flag,把
users
表dump出来,data
这一列明显是PHP序列化,但是只能控制其中的字符串,不能控制整个反序列化字符串,所以不能使用反序列化。![攻防世界Web之fakebook](https://img.it610.com/image/info8/6c78909285234d4aad15e40fbc2f1fcc.jpg)
文章图片
使用sqlmap的
--sql-shell
参数,进入SQL交互,尝试执行SQL语句,把源码dump出来分析,没分析出啥。select load_file('/var/www/html/index.php');
select load_file('/var/www/html/user.php');
select load_file('/var/www/html/db.php');
select load_file('/var/www/html/view.php');
随手试一下
flag.php
,居然成功了。select load_file('/var/www/html/flag.php');
【攻防世界Web之fakebook】
![攻防世界Web之fakebook](https://img.it610.com/image/info8/374d93ddd395454cb8a3dbb87bf37300.jpg)
文章图片
推荐阅读
- 诗歌:|诗歌: 《让我们举起世界杯,干了!》
- 迷失的世界(二十七)
- 金庸们的武侠世界,陪你走过少年时代吗()
- 我的世界同人小说《暮色齿轮》第三回|我的世界同人小说《暮色齿轮》第三回 回忆
- 不以胜负论出关
- “成年人的世界,命都是钱给的”
- 私有化轻量级持续集成部署方案--03-部署web服务(下)
- 归乡-序章(世界伊始,人类无所依靠,我的故事就从这里开始...)
- 4.23世界阅读日,樊登读书狂欢放送,听书中成长
- 诱惑的世界