sql-lab21-40关通关秘籍

Less-21

基于错误的复杂的字符型cookie注入,base64编码,单引号,报错型,cookie型注入。
21关与20关相似,只不过是cookie的uname值经过base64编码了。
所以只需要上传payload的时候base64加密一下就可以了。先进行抓包。在这里插入图片描述
看到cookie是YWRtaW4%3D ,和页面显示不一样,但是明显%3D 是=号urldecode的结果,接下来构造paylaod进行测试。
经过我自己的测试,-+在此不好用,需要用#来注释。
接下来只需要修改第三条查询语句,和less-20一样(注意用#注释,而不用–+),只要base64加密后写入cookie,就可以完成注入。

Less-22 基于错误的双引号字符型cookie注入

base64编码,双引号,报错型,cookie型注入,和第21关一样,只需要用双引号代替单引号再去掉括号。在这里插入图片描述

Less-23 基于错误的过滤注释的get型

先观察php代码,看到替换了能用的注释符,所以我们构造闭合语句:
还是依次进行爆库,爆表,爆列名,爆值。

Less-24二次注入

1.先注册一个admin‘ #的账号。
2.登录admin’ #,修改该账号的密码,此时修改的就是admin的密码。Sql语句变为UPDATE users SET passwd=“New_Pass” WHERE username =’ admin’ # ’ AND password=’
也就是执行了UPDATE users SET passwd=“New_Pass” WHERE username =’ admin’
成功的话页面会提示Password successfully updated。
在这里插入图片描述
3.用刚刚修改的密码,登录admin管理员账号。注入成功。

Less-25

在这里插入图片描述
使用双写or或and绕过,or and形成闭合语句,sql查询,不再详述。
在这里插入图片描述

Less-26 过滤了注释和空格的注入

还是查看php文件,查看文件之后会发现function blacklist(id)来了个过滤全家桶,id) 来了个过滤全家桶,id)来了个过滤全家桶,id 周围是单引号,过滤了 or,and , /* , – , # , 空格 , /
将空格,or,and,/*,#,–,/等各种符号过滤,此处对于and,or的处理方法不再赘述,参考25.此处我们需要说明两方面:对于注释和结尾字符的我们此处只能利用构造一个 ’ 来闭合后面到 ’ ;对于空格,有较多的方法:
%09 TAB键(水平)
%0a 新建一行
%0c 新的一页
%0d return功能
%0b TAB键(垂直)
%a0 空格
ixin_45880717/article/details/104140702

Less-27 过滤了union和select

还是先查看是否过滤了单引号,发现是过滤的,空格也是过滤的。接下来查看是否过滤关键字,发现关键字也是过滤的,但是大小写是可以突破的。
爆数据库:
这里的or '1 ’ = ‘1是为了闭合和后的’ 变成or ‘1’=‘1’ limit 1,1 让语句完整
查表名:需要把or换成&&(%26%26)
查字段名,查数据。

Less-28

基于错误的,有括号的单引号字符型,过滤了union和select等的注入,经过测试,语句可能是 select *from users where id=(‘xxx’)
还是查数据库,查表名(这里不要忘记or换成&&),查字段名,查数据(把&&换成where)

Less-29 基于WAF的一个错误

还是先判断
输入双引号正常
输入一个引号发生错误,两个引号正常
那么语句可能是 select * from users where id=‘xx’ limit 1,1
尝试注入在这里插入图片描述
库爆出之后,后面的步骤还是一样

Less-30基于错误的GET型双引号字符型注入

这一题和上一题差不多,语句就是把单引号换成双引号就可以了。

Less-31 WAF防护

在这里插入图片描述
剩余的步骤参考前面。

Less-32 Bypass addslashes()

绕过 addslashes()
宽字节绕过引号转义
addslashes()会在单引号前加一个\ 例如:I’m hacker 传入addslashes(),得到:I’m hacker
原理大概来说就是,一个双字节组成的字符,比如一个汉字‘我’的utf8编码为%E6%88%91 当我们使用?id=-1%E6’ 这样的构造时,’ 前面加的 \ 就会和%E6 合在一起,但是又不是一个正常汉字,但是起到了注掉 \ 的作用
在这里插入图片描述
使用十六进制编码就可以绕过了’'使用0x 代替,users 使用十六进制编码得到7573657273,构造为0x7573657273.

Less-33 Bypass addslashes()

绕过 addslashes()
和上一题一样的。

Less-34 Bypass AddSLASHES

绕过添加斜杠,post方式,抓包提交。
在这里插入图片描述

Less-35 why care for addslashes()

id周围没有的单引号或者双引号,不需要过,直接注入。
在这里插入图片描述

Less-36

单引号闭合
该关中用到了一个函数:
function check_quotes($string) { string=mysqlrealescapestring(string= mysql_real_escape_string(string=mysql
real escape
string(string); return $string; }
介绍一下 mysql_real_escape_string():
mysql_real_escape_string() 函数转义 SQL 语句中使用的字符串中的特殊字符。
下列字符受影响:
\x00 \n \r \ ’ " \x1a
如果成功,则该函数返回被转义的字符串。如果失败,则返回 false。
详细注入过程参考Less-32。

Less-37

这一题与34题的区别在于过滤函数的不同:
在这里插入图片描述
和Less-34一样用万能密码过掉即可。

Less-38

查看php源代码,使用堆叠注入。不再详述。
在这里插入图片描述

Less-39

这一题和38题的区别就是
在这里插入图片描述
其他的都一样。

Less-40

还是和上面的一样,唯一的区别:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值