将用户的输入拼接到sql语句中,并被当作代码执行
sql语句可简单的进行加减法
mysql 5.0以上的版本自带数据库,记录了数据库中所有的表名,列名和字段名
information_schema.tables 记录所有表名信息的表
information_schema.column 记录列名信息的表
1.我们首先要查找到可以注入点。
所谓注入点就是与数据库交互的地方,就是把所写内容当成代码到数据库执行。
域名后面id=1一般会存在注入,可以尝试注入。
url栏中要注意url编码的问题。
用 and 1=1 , and 1=2 ,来判是否被当成sql语句在数据库中执行。
2.判断注入类型
如何判断,输入各种的字符,使语句无法闭合。从而发现注入类型
3.判断字段数。
order by ,本意是对字段数进行排列。这里对字段数进行判断。
例如
一个表中有2个字段,输入order by 3 就会报错,因为这个表中的字段只有两个,但是却让三个字段进行排列。故报错。
我们这里判断字段数的原因是为了给后面的联合注入做准备。
联合查询是由要求的,前方语句需要与后方语句的字段数相同。
4.判断回显位
因为为了让前面的语句无法查询到数据,从而显示我们后方的结果
所以一般现根据字段,查看他的回显位
5.查
union select table_name from information_schema.tables where table_schema=库名
union select column_name from infromation_schema.column whrere and table_name=表名 limit(0,1)
尽量不要使用contact_group 会有限制。
所以最好的是使用limit