实验原理
1.POST方式概述 使用 POST 方式提交数据,注入点位置在 POST 数据部分,常发生在表单中。
2.GET和POST的区别:
语义上的区别,get用于获取数据,post用于提交数据。
GET - 从指定的资源请求数据。
POST - 向指定的资源提交要被处理的数据
get参数有长度限制(受限于url长度,具体的数值取决于浏览器和服务器的限制),而post无限制
3.如何判断是否存在POST注入
主要是判断输入框是否存在注入,直接输入一个 '看是否报错(如果存在盲注的话也是不会报错的),如果直接出错了,说明存在注入漏洞,如果没有,那么还需要进一步确定。如果页面有多个输入框,这时要分别确定是否都存在注入漏洞。
第一步判断是否存在字符型/数字型注入
单引号报错
从报错信息可以推测出数据库的查询语句有可能是如下形式:
select username,password from table_name where username='$_POST['uname']' and password='$_POST['passwd']' limit 0,1
闭合注释后不报错,判断sql注入类型为字符注入
步骤二:利用burp suit进行手工注入
判断字段数
判断字段为两个字段
确定回显位置
查询所有的数据库
查询security数据库中所有表名
查找security库中users表中所有列名
查找security数据库中users表中username和password字段的值