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

获取数据

  • 21
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: CTFsql注入练习题是一种用于训练和测试SQL注入技巧的题目。在这些题目中,参与者需要通过注入恶意的SQL代码来绕过应用程序的安全机制,从而获取敏感信息或者执行未授权的操作。这些题目通常包含了不同的注入场景和技巧,例如基于时间的盲注、报错注入、布尔盲注、宽字节注入等等。参与者需要通过分析应用程序的行为和结构,构造合适的注入语句来实现攻击目标。在解决这些题目的过程中,参与者可以提高对SQL注入漏洞的理解和掌握,并学习如何防范和修复这类漏洞。 #### 引用[.reference_title] - *1* *2* [CTF-SQL注入入门题型](https://blog.csdn.net/weixin_43080961/article/details/121939366)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [i 春秋 CTF训练营 web——SQL注入 1(字符型注入)(手动注入)](https://blog.csdn.net/AAAAAAAAAAAA66/article/details/121626527)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值