分享一点SQL注入基础笔记(草稿)吧,自行理解。。

手工SQL注入:
1.找到注入点,判断注入类型 字符型(url?=id)
2.求闭合 ’
3.查回显的字段 order by 二分笔记法 10 5 2 3 4 使用union联合查询找回显位
4.注入
使用浏览器插件辅助查询:UNION BASED 记得把
load_file(‘/tmp/360/key’)
– +(注释)
/**/代替空格
#可以闭合(过滤的时候可以用url编码)#开始到行尾的所有字符都被注释掉
’正常语句闭合
or ‘1’='1(万能公式)


image

3 个赞

感谢分享。我记得好像有一个waf的产品带那种注入练手测试功能的,不记得哪款呢

1 个赞

‘’=or’’



试了试了,很好的练手

1 个赞

没想到,大飞平时也会写写sql。

大飞经常切屏优化SQL

何为切屏优化SQl :smiley:

说的是sqlilab吧

个人觉得学习sql注入最好的办法就是去看sqlmap源码的实现,工程和体系化的方式去实现注入,当然这种手注方式学习也蛮不错的,其实可以从命令注入的角度的方式体系化的讲一下sql注入、xss这些经典漏洞。

4 个赞

整挺好

问你个问题除了引号,还有什么办法实现闭合

不是我们决定用啥闭合,而是看开发用了啥,他用了单引号我们就用单引号闭合。他用了’(那我们就用对应的才能闭合

V佬太强了

1 个赞

我知道就是有引号的话中间的参数的引号被过滤了,有没有其他办法闭合

猜或者fuzz他这个地方的语句是怎么写的,一般来说注释符、逻辑符号(and or这些)分号这些都能实现闭合

不是,我是有源码知道结构,但是传参的时候引号变成了'

闭合会考虑waf过滤规则,可能要url编码,双写,等等,有时需要一直试,直到回显正常。可以辅助sqlmap爆破:先用sqlmap 跑到出来payload ->看到注入点和回显列数
然后使用浏览器插件辅助查询

在提供一些不常用注入方式参考
报错注入:
updatexml(a,b,c )
a: XML文件对象名字 b: 文档对象的xpath路径 c:替换查找道的符号条件的数据

concat(): 拼接字符串 concat(‘a’,‘b’,‘c’) → ‘abc’
group_concat():拼接当前列下面的字符串

布尔盲注:

substr(a,b,c)
a: 需求截取的字符串 b. 截取字符串的开始位置 c :截取的长度

substr(‘abcdefg’,1,1) ->‘a’ substr(‘abcdefg’,2,2) ->‘bc’
123456

true and true → true
true or false → true

kobe’ and substr(database(),1,1) =‘a’ – +

kobe’ and ascii(substr(database(),1,1)) =112-- +

时间盲注:
sleep(5)
kobe’ and ascii(substr(database(),1,1)) =112 and sleep(5) – +

1 个赞

有源码直接上调试