前言
本次我们将配合Burpsuite进行代码审计 如果此时你感觉burpsuite配置麻烦,或者报错,或者英文看不懂
附上此次用的开盒即用中文版burpsuite:
此外因为SQL靶场 有些人配置错误,或者配合Phpstudy感觉配置麻烦
我此次建了几个外网靶场 大家可以使用(请勿攻击
sql.yhu.cc
sql1.yhu.cc
sql2.yhu.cc
sql4.yhu.cc
实战
房间地址:https://tryhackme.com/room/burpsuiterepeater
靶机:10.10.101.97
其实本次主要是使用Burp只不过期中有个很简单SQL注入 这个难易程度还不及SQL注入靶场前几个的难度
看一下这个网站
这里应该是他们的成员随便点进去看看
打开burpsuite拦截
刷新
发送到重放器里
关掉拦截
点击重放器里查看
我们该about2 检查一下内容
让我们改2’看看有没有SQL注入
看来他是有的
这里判断出闭合符号为空
就比如:
SQL靶场中
这里是没有任何包裹的
当然也有包裹的 闭合符号需要我们判断
如
闭合符号是’) 所以我们是需要通过数据库报错信息查看闭合符号的 我们已经查到这个网站是没有任何包裹的
从这个图中
我们看到有五列 来自people数据库表
SQL注入有联合union联合查询 暴库 暴表 有点多—-
我们这里就用靶场给的提示吧
/about/0 UNION ALL SELECT column_name,null,null,null,null FROM information_schema.columns WHERE table_name="people"
这里用到union联合查询 从people表里查询
看到ID=0的时候是没有的 为什么要ID=0的时候呢 这里用到的是回显:
这里靶场没有解释,我给大家解释一下,union是需要表数列数跟前面查询的列数必须是一样的 如果前面显示是两个union后面查询也必须是两个 如果不是,就会报错 ,
如以下是三列 使用union select的时候必须是三列
查询的时候就需要 union select 1,2,3这样
可以看到他们应该是给了limit限制 只显示一条所以我们需要
把第一个显示给回显掉 我们就能查看后来我们union全部结果,根据上述出的报错信息可以看到显示查询的是五列
我们用null null null null顶替后四列
0实际上本来就没有 我们正是通过把0的数据回显掉 这样 查询我们想要的值
幸运的是,我们可以使用SQLi对结果进行分组。我们仍然一次只能检索一个结果,但是通过使用该group_concat()
函数,我们可以将所有列名合并到一个输出中:
俗称:前面说是暴库暴表 这里俗称暴字符
/about/0 UNION ALL SELECT group_concat(column_name),null,null,null,null FROM information_schema.columns WHERE table_name="people"
上下两图也给了我们回显结果 一共是八列:id
、firstName
、lastName
、pfpLink
、role
、shortRole
、bio
notes
。
这个八列是总的表是八列 上述的五列是查询的时候的五列 请不要搞混
接上文如果我们把0改成已经存在的1呢 让他不回显
如果改成存在的我们就不能看到正常内容
根据一号是CEO
以及上述的八列
flag极可能隐藏在notes表中
暴!
0 UNION ALL SELECT notes,null,null,null,null FROM people WHERE id = 1
ok flag已出
暂无评论内容