【靶场训练】sql-libs
less-23
这一关为注释符绕过,添加and '1'='1与后台查询语句形成闭合。后续为查库,查表,字段。


less-24为二次注入
⼆次注⼊可以理解为,攻击者构造的恶意数据存储在数据库后,恶意数据被读取并进⼊到SQL查询语句所导致的注⼊。防御者可能在⽤户输⼊恶意
数据时对其中的特殊字符进⾏了转义处理,但在恶意数据插⼊到数据库时被处理的数据⼜被还原并存储在数据库中,当Web程序调⽤存储在数据
库中的恶意数据并执⾏SQL查询时,就发⽣了SQL⼆次注⼊。
⼆次注⼊,可以概括为以下两步:
第⼀步:插⼊恶意数据
进⾏数据库插⼊数据时,对其中的特殊字符进⾏了转义处理,在写⼊数据库的时候⼜保留了原来的数据。
第⼆步:引⽤恶意数据
开发者默认存⼊数据库的数据都是安全的,在进⾏查询时,直接从数据库中取出恶意数据,没有进⾏进⼀步的检验的处理。
注册用户名为admin'#的账户

登录之后修改密码,由于没有将用户名中危险字符过滤,将用户名拼接到这行代码之中

admin'#将后面语句注释掉,更新的密码为原来用户admin的密码。
less-25
为or and 绕过,可以使用复写绕过。大小写绕过。&&代替and,||代替or。

less-25-a
字符型注入


less-26
空格编码绕过:
%09 HT (Horizontal Tab) ⽔平制表符
%0A LF/NL(Line Feed/New Line) 换⾏键
%0B VT (Vertical Tab) 垂直制表符
%0C FF/NP (Form Feed/New Page) 换页键
%0D CR (Carriage Return) 回车键
%A0 空格绕过,相当于 
过滤空格可以采用不同的编码方式,and双写绕过,过滤符用and'1'='1绕过

less-26a
闭合方式不同,闭合为('$id')
http://192.168.48.149/sql/Less-26a/?id=1')%A0anandd%A01=2%A0union%A0select%A011,(select%A0table_name%A0from%A0infoorrmation_schema.tables%A0where%A0table_schema=(select%A0database())%A0limit%A00,1),33%A0anandd('1')=('1

less-27
select union 大小写绕过

less-28
闭合方式为('')

less-28a
与前一关一样


浙公网安备 33010602011771号