sql
[SWPUCTF 2021 新生赛]error
0x00
看提示感觉像是一个sql注入
0x01
先输入一个1,看看是post 还是get
是get,那我们就使用hackbar
0x02
判断字符型还是数字型
输入1 不报错
输入1` 报错
所以是字符型
0x03
根据提示,这个是报错注入,使用updatexml()函数
然后就是联合注入的一部分
0x04
1 |
|
最后确定是test_db.test_tb的flag列
发现不能显示完,我们使用substr()控制一下
http://node4.anna.nssctf.cn:28736/index.php?id=1‘ union select updatexml(0x7e,concat(‘~’,substr((select flag from test_db.test_tb ),30,40)),0x7e) –+
[SWPUCTF 2021 新生赛]sql
0x00
这个的重点是空格绕过,也就是想办法绕过空格
注意参数,然后开始尝试,发现1是可以执行的
0x01
然后我尝试判断是什么类型
一个引号出现了 问题,但是两个没有问题,所以判断是字符型,然后尝试获取显示位
非法操作,在这个地方出现错误,我先想到有两种
- 空格绕过
- 注释
为了方便,我一下用了两种
?wllm=1’//order//by/**/4%23
0x02
然后就是联合查询那些,一直到获取列的元素
-1’union//1,group_concat(table_name),3//from//information_schema.tables//where//table_schema//like(database())%23
-1’union//select//1,group_concat(column_name),3//from//information_schema.columns//where//table_name/**/like(“LTLT_flag”)%23
-1’union//select//1,database(),flag//from//LTLT_flag%23
发现出现了问题
遇到这个问题,我首先想到的是,使用substr
猜测可能把substr禁止了,所以尝试使用其他的方法
letf()
right()
mid()
[强网杯 2019]随便注
0x00
这个主要是使用堆叠注入
0x01
先实现网站的正常功能
先判断闭合
通过这个发现应该是单引号闭合
0x02
0x03
尝试使用select 判断一下显示位
发现被禁用了
select 被禁用的话,那么联合注入,报错注入,盲注等,都不行了
尝试堆叠注入
发现可以使用堆叠注入
0x04
先看看有哪些表
一个一个查
0x05 爆破字段
0x06
发现了flag,但是想要获取字段的话,就必须使用select,就很难办
但是我们可以使用网页后端自带的select 也就是说,我们可以将原来的word -> word1 192这个表变成words
同时还得将这个修改了,我们可以添加一个ip列,然后将flag这一列变成data
1 |
|
然后使用
1 |
|
使用这个的原因是,我们没有指定flag(word)对应的id,所以只要为真就能xian’shi
[CISCN 2019华北Day2]Web1
0x01
1 |
|
0x02
基本思路就是,使用bool盲注的方式获取字段里面的值
[第五空间 2021]yet_another_mysql_injection
0x00
利用知识点
quine
sql 注入的内容是查询的内容
0x01
发现了源码
0x02
可以使用盲注的脚本
1 |
|
0x03
或者使用Quine 注入的形式
1 |
|
[NISACTF 2022]join-us
0x00
使用的知识点
无列注入
禁用columns,使用join
报错注入
两个方法
updatexml()
extractvalue()
禁用databases
可以使用一个不存在的表,然后就会返回报错
0x01
发现登录页面点进去,发现注入点
测试
1,0
发现是单引号闭合
尝试fuzz 测试,看禁用了什么
1 |
|
发现了禁用挺多的
发现没有禁用
extractvalue
还有||
0x02
尝试爆破数据库
但是databases被禁用了
可以尝试访问一个不存在的表
得到数据库的名字
0x03
获取表名
1 |
|
但是可以通过
0x04
因为列名也被禁用了,就只能使用join
1 |
|
发现不存在
爆破另一张
然后添加mid截取