一、课程名称:边界值测试&报错注入&字符串&模糊注入
二、课程内容
报错注入
原理:程序员会将数据库的错误信息,打印在前端,攻击者利⽤这些错误信息进⾏认为的制造错误条件,使得查询结果能能够出现在错误信息中。
updatexml
updatexml(参数1,参数2,参数3)
updatexml(需要替换的值,替换的⽂件在哪⾥,要替换成什么)
concat()字符串拼接
原理:参数2(需要替换的⽂件)存在特殊符号就会报错,通过concat()函数配合⼦查询即可在参数位置输⼊SQL语句进⾏注⼊
SELECT updatexml(1,'',1)
#错误信息:XPATH syntax error: ''
select updatexml(1,concat('!',(select database())),1);
#错误信息:XPATH syntax error: '!security'
#通过字符拼接后即可得到所需要的信息
extractvalue() :对XML⽂档进⾏查询的函数
语法:extractvalue(⽬标xml⽂档,xml路径)
第⼆个参数 xml中的位置是可操作的地⽅,xml⽂档中查找字符位置是⽤ /xxx/xxx/xxx/…这种格式,如果我们写⼊其他格式,就会报错,并且会返回我们写⼊的⾮法格式内容,⽽这个⾮法的内容就是我们想要查询的内容。
正常查询 第⼆个参数的位置格式 为 /xxx/xx/xx/xx ,即使查询不到也不会报错
select username from security.users where id=1 and(extractvalue('~','/x/xx'));
floor()函数
比较复杂,作为了解
数据类型:int:0 ~ 21474836472147483648
cookie:⽤来存储我们的身份信息的
http 头字段⾥⾯信息也是有可能会被带⼊数据库就⾏操作的,如果有了这个操作,那么就可以尝试 sql 注⼊测试
模糊查询
//查询包含查询内容的所有值 select *from 数据表名 where 字段名 like '%查询内容%';
//查询以查询内容开头的所有值 select *from 数据表名 where 字段名 like '查询内容%';
//查询以查询内容结尾的所有值 select *from 数据表名 where 字段名 like '%查询内容';
//查询数据表yh内username字段⾥包含88的值 select *from yh where username like '%88%';
select * from vulin_users where username LIKE '%a%';
select * from vulin_users where username LIKE '%%' or 1=1 -- %';
可用于带订单号的,模糊查询订单
WEB渗透测试工程师系统班250303期 第14节课作业 1. 实际操作课堂讲解的yakit sql注入靶场,截图 2. 实际操作sqliWEB渗透测试工程师系统班250303期
|