建设网站平台费,设计网站公司哪里好,福步外贸app下载,wordpress免费1.数字型注入
例如PHP代码
“ Select username from users where id”.#xff04;#xff3f;GET#xff3b;id#xff3d;
可以注意到#xff0c;用户的输入ID字段没有任何过滤的#xff0c;被直接拼接在了SQL查询语句中#xff0c;由于ID没有被引号包裹#xff…1.数字型注入
例如PHP代码
“ Select username from users where id”.GETid
可以注意到用户的输入ID字段没有任何过滤的被直接拼接在了SQL查询语句中由于ID没有被引号包裹而且类型为数字我们称这种注入为数字型注入
我们可以使用在语句中加入运算符的方法来测试这种注入是否存在比如测试id1和id2-1如果两者都查询到了且结果相同说明PHP文件将2-1作为一个表达式执行如果这种情况说明有可能是一个数字型SQL注入此时只能得到用户名想要更多的信息需要使用一个SQL关键字union 2.Union注入
Union可以将两个select语句的结果合并到一个结果集中但是要求两个select语句拥有相同的列数
例如输入id0 union select password from users空格的URL编码为%20
表示从users表中读password列在打出这个例子是已知有users表和password列
在这里写ID0列是因为要使第一个select结果为空让第二个select语句查询的password显示出来还可以用limit关键字查询其他行 3.字符型注入
“ Select id from users where username ”.GETusername.”
用户输入username被单引号包裹了起来这样一来用户的所有输入都会被当做字符串处理无法使用之前数字型注入的payload进行注入了。但是如果我们的输入中也存在一个引号这样就可以将前面的引号闭合使得后面的内容从字符串中逃逸出来最后还需要将后面的引号注释掉以免引发语法错误
比如我们可以使用一个单引号将字符串闭合最后用井号将后面的单引号注释掉
例如usernameor11#单引号空格井号都需要URL编码
在where语句中or连接两个表达式第一个返回假第二个返回真or操作后返回真整个操作返回所有的结果集
4.布尔盲注
当服务器不显示查询结果只返回是否查询成功时我们就无法使用union直接回显数据这时就需要进行盲注这里先操作布尔盲注
既然只返回两种状态存在或不存在就可以通过这两种状态注入出数据
Usernameor substr password 111#
Substr是一个字符串截取函数第一个参数是要截取的字符串第二个是截取开始的位置第三个是截取长度例如上面语句的意思是从第一个字符开始截取password字段的一个字符并判断等不等于1这个数字自己一个一个尝试太麻烦可通过爆破来进行直到达到某一位我们无法遍历出其真正的值时就意味着我们可能已经猜测完成也可以提前使用length函数猜测一下这个字符串的长度