SQLi LABS Less-21

简介: 21关使用POST请求提交参数,对用户名和密码中的特殊字符进行了转译,难度较大

第21关使用POST请求提交参数,对用户名和密码中的特殊字符进行了转译,难度较大

image.png

21关的突破口在cookie,用户登录成功后,将用户名进行base64加密后,保存在cookie中


image.png


点击提交按钮的时候,会从cookie中获取保存的用户名,使用base64解密后,查询数据库,来验证用户是否处于登录状态,我们可以修改cookie的值,从而进行SQL注入



image.png



先输入正确的用户名和密码,登录成功后刷新页面,并使用代理软件(Burp Suite)拦截请求,可以看到Cookie中保存了base64加密后的用户名

image.png

我们将用户名进行解密(先使用url解码,再使用base64解码),可获得编码前的用户名

image.png

我们将构造好的payload使用base64加密后再提交

1') and updatexml(1,0x7e,1) -- a

加密后

MScpIGFuZCB1cGRhdGV4bWwoMSwweDdlLDEpIC0tIGE=

image.png

报错成功,接下来修改payload脱库即可

image.png

相关文章
|
数据库 数据安全/隐私保护
SQLi LABS Less-19
第19关使用POST请求提交参数,后端对用户名和密码进行了特殊字符转译,难度较大源码如下
142 0
SQLi LABS Less-19
SQLi LABS Less-30
第30关使用GET请求传递参数,在url中构造payload即可 后端源码中并没有做什么过滤,只是在参数两边添加了双引号
116 0
SQLi LABS Less-30
|
SQL 数据库 数据安全/隐私保护
SQLi LABS Less-22
2关使用POST请求提交参数,对账号和密码中的特殊字符执行了转译的操作,难度较大
SQLi LABS Less-22
SQLi LABS Less-31
第31关的源码中并未对参数做过多的过滤,只是在参数两边拼接了双引号和括号
120 0
SQLi LABS Less-31
SQLi LABS Less-27
第27关使用GET请求传递参数,在url中构造payload即可 源码中过滤了/*,--,#,空格,select,union,需要考虑一下怎么绕过这些规则
279 0
SQLi LABS Less-27
SQLi LABS Less-25a
第25a关使用GET请求传递参数,在url地址栏中构造payload即可 后端源码中过滤了and和or,但只过滤了一次,我们可以通过双写绕过
182 0
SQLi LABS Less-25a
SQLi LABS Less-29
第29关使用GET请求提交参数,在url中构造payload即可 源码中并没有做什么过滤,直接测试注入点即可
180 0
SQLi LABS Less-29
|
SQL 安全 数据库
SQLi LABS Less-18
第十八关请求方式为 GET请求 , 注入点为 User-Agent , 注入方式为 错误注入 第一步,判断注入方式
156 0
SQLi LABS Less-18
|
SQL 存储 安全
SQLi LABS Less-39
第三十九关请求方式为GET请求 , 注入类型为 整形注入 第一步,判断注入类型
SQLi LABS Less-39
|
SQL 安全 数据库
SQLi LABS Less-17
第十七关请求方式为POST请求 , 注入点为 单引号字符型注入 , 注入方式为 报错注入 第一步,判断注入类型
131 0
SQLi LABS Less-17