sql注入题目练习

下面是我学习sql时做的题,一些是ctfhub上的,之前上次做的时候都是通过看别人wp写的,现在通过自己运用了两种方法重新尝试解答,还有的是NSSctf上的,法一是通过手注,法二是通过sqlmap跑的

整数型注入

法一

打开题目发现让输入1试试,发现注入点

确定为数字型注入

查看字段数(-1是因为id没有负的,这样就会显示错误然后执行后面的查询内容),发现到3时回显有问题,说明字段数是2

查回显位,有两个字段数,所以写到2,得到回显位为1

爆数据库,库名为sqli

爆表名

爆列名

最后爆内容,得到flag

法二

爆库名

爆表名

爆列名

查内容

字符型注入

法一

说明是字符型且是'闭合(这里不知道为什么那个+不显示,而且如果是在下面输入框中输语句+号在url中转变为%2B就会无回显)

输到3时回显有问题,说明字段数为2

看到回显位是1

爆库名

爆表名

爆列名

得到数据

法二

爆库名

爆表名

报错注入

法一

发现存在注入点

报错后就可以开始注入了

爆库名

爆表名

爆列名

查数据

法二

爆库名

爆表名

爆列名

查数据

布尔盲注

法一

发现是字符型注入且是'闭合

接下来要判断数据库长度,然后通过ASCII码确定数据库名,由前面的题可以看出数据库名是sqli,可以直接验证,不知道时就需要运用二分法去逐步确定

在ASCII码中115,113,108,105分别对应着sqli四个字母

接下来就是爆表名,爆列名,查数据,手注会比较复杂,特别是最后查数据,flag很长,每一个字符都需要通过二分法找到对应的ASCII码值,很麻烦,通常情况下还是sqlmap好用一点

法二

爆库名

爆表名

爆列名

查数据

时间盲注

法一

这里知道是时间盲注后过程就和布尔盲注大致一样,都是利用二分法一步步确定,只是这里是通过sleep()函数去确定是否成功执行

法二

爆库名

爆表名

爆列名

查数据

NSSctf  [suctf 2019]EasySQL

先输入一个1试试水,发现有回显

然后输入1 and 1=1,发现回显nonono,再输入1'发现什么都没有了

使用堆叠注入语句爆库名1;show databases;

爆表名1;show tables;

后面就查Flag这个表中的flag,但是发现查不了,应该是被过滤了,这里没想法了就参考了一下别人的wp,有两种做法。

法一

一种是需要将flag截断,直接构造payload:*,1然后后端语句就会直接变成select *,1 from flag。

输入*,1,这里会增加一个临时列,他的列名为1,然后那一列的值都为1

法二

另外一种就是1;set sql_mode=PIPES_AS_CONCAT;select 1 相当于是将select 1 和 select flag from Flag 的结果拼接在一起,也就是 select 1;的结果拼接select flag from Flag的结果

把||变成字符串连接符,而不是或

[SWPUCTF 2021 新生赛]error

法一

输入1后发现注入点

发现是字符型注入,且是'闭合

联合查询不能用

尝试报错注入,爆库名

爆表名

爆列名(表users)

里面没flag,就看了test_tb,找到flag

查数据,发现flag只有一半,后面去查了一下发现updatexml函数的输出长度限制,如果只有一半flag就要用到substr(A,B,C)函数(substr(a,b,c)是截取字符函数。a=截取对象 b=截取的位数 c=截取的个数)

得到后半段flag

法二

sqlmap -u 'http://node4.anna.nssctf.cn:28597/index.php?id=1' --current-db 

爆库名

sqlmap -u 'http://node4.anna.nssctf.cn:28597/index.php?id=1' -D 'test_db' --tables

爆表名

sqlmap -u 'http://node4.anna.nssctf.cn:28597/index.php?id=1' -D 'test_db' -T 'test_tb' --columns

爆列名(这里由于在手注时知道flag在test_tb里面,就没再尝试users)

sqlmap -u 'http://node4.anna.nssctf.cn:28597/index.php?id=1' -D 'test_db' -T 'test_tb' -C 'flag' --dump

获取数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值