前言:
还在持续完善中
如果是搭建的本地靶场,请访问主机 ip 进行抓包
暴力破解篇使用的是中文版的 burpsuite,后面会换成英文版的

# 暴力破解

# 基于表单的暴力破解

很简单对目标进行抓包
1.png
2.png
选择攻击模块
设置变量选择集束炸弹
进行密码字典爆破
3.png
开始攻击,选择长度不同的那一个就是账号密码
4.png
5.png

# 验证码绕过 (on server)

1.1 一样的很简单只要把验证输正确再抓包就可以了
1.png
2.png

# 验证码绕过 (on client)

在 intruder 模块里验证码可复用
跟前两个一样的操作,这种验证码形同虚设,只是用来防御人机的
1.png
2.png

# token 防爆破?

经过实验我们知道这里的 token 无法进行复用
这里的账号和密码还是老样子爆破
1.png
token 选项选择 递归提取(Recursive grep)
点击设置 -> 检索 - 提取(添加)-> 获取响应
2.png
搜索 token 回车,然后选中 token 的值,点击确定
3.png
因为是递归 grep,burp 默认的爆破线程是 10,所以需要修改一下
4.png
开始攻击成功获得密码(本来想爆破账号和密码的但是没有成功)
5.png

# XSS(跨站脚本)

# 反射型 xss (get)

看到 xss 我们知道要用 JavaScript
1.png
直接上一个最简单的弹窗
2.png
输着发现被限制了字节,不管啦,F12 打开前端看看
3.png
搜索一下,看看只有 20 个字节,我直接给他改成 20000
4.png
OK 也是成功的弹窗了,xss 执行成功
5.png
既然是本地靶场我们就打开源码看看呗
源码:vul/xss/xss_reflected_get.php
6.png
看了源码发现它毫无过滤所有导致脚本能被执行

# 反射性 xss (post)

一个登录页面,如果可以直接爆破,这里我们自己登上
1.png
直接弹窗成功
2.png
不用看源码了,也是咩有任何过滤

# 存储型 xss

额,输入脚本代码就正确弹窗了
1.png
源码:vul/xss/xss_stored.php
2.png
任然没有过滤,这里最大的区别是将输入参数传给了数据库,然后从数据库取得值

# DOM 型 xss

DOM 型 XSS(Document Object Model Cross-Site Scripting)是一种特殊的跨站脚本攻击技术,它主要利用浏览器中的 DOM 框架(Document Object Model)来执行恶意脚本,进而引发安全漏洞。这种攻击方式不需要将恶意脚本传输到服务器再返回给客户端,而是直接在前端通过 JS 渲染来完成数据的交互,因此即使进行抓包也无法检测到相关的流量。而反射型与存储型需要与服务器交互,dom 型不需要。

攻击者构造一个包含恶意脚本代码的URL或修改页面中的DOM元素,并将其发送给用户。
用户点击该URL或触发相应的DOM元素后,浏览器会解析并执行其中的恶意脚本代码。
恶意脚本代码在用户的浏览器环境中被执行,进而实现攻击者的目的,如窃取用户的敏感信息、篡改页面内容或执行其他恶意操作。

我们直接在输入框输入字符如 “kuku”,f12 查看源码,搜索 “kuku”
这里是将传递的值当作了标签的 href 属性
代码的问题在于:
用户在 ID 为 text 的输入框中输入了恶意内容(例如 JavaScript 代码),那么这段内容将直接插入到 ID 为 dom 的元素的 innerHTML 中,并且可能被执行。当其他用户访问这个页面时,如果他们的浏览器执行了这段恶意代码。
我们只闭合 domxss 函数中的 href 属性的值,就可以实现弹窗以及恶意的脚本代码
直接输入 '><script>alert("1")</script>闭合就可以弹窗了
1.png

# DOM 型 xss-x

2.4 一样的操作

# xss 盲打

盲打就是是我们上传的数据,会被存储到管理员后台,我们上传的恶意数据也会存储在后台,当管理员访问到该页面时便会执行我们的恶意脚本。
1.png
然后我们需要模拟管理员登录后台,后台地址:url/xssblind/xssblind/admin.php
账号密码就是之前爆破的密码
2.png
管理员弹窗进入后就可以看到存储信息
3.png
4.png

# xss 过滤

我们输入 “你好”,可以看到下面返回了 “你好”,按理是输入什么就会被返回什么
1.png
我们输入 <script>alert(111)</script> 看看
可以看到被过滤的只剩一个 ">" 了,存在过滤
2.png
所以我们要用其他的 xss 代码了,可以参考我的这个文章
我们这里用 <a href='' onclick='alert("111")'> ,然后无弹窗可能还有过滤
我们换一个 <img src=x onerror=alert(1)> ,弹窗成功
3.png
结束,我们打开源码看看吧
4.png

# xss 之 htmlspecialchars

htmlspecialchars () 是 PHP 中用于防御 XSS (跨站脚本) 攻击的重要函数,它能将特殊字符转换为 HTML 实体。

①②③④⑤⑥⑦⑧⑨⑩

更新中

# xxx

# xxx

# RCE

前言:RCE 漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。
&:顺序执行多条命令,无论前面的命令是否执行成功,后面的命令都会被执行。(或)
&&:只有当前面的命令执行成功时,才会执行后面的命令。(与)
|:管道符,将前一个命令的输出作为后一个命令的输入。在某些场景下可用于跳过前面的命令, 直接执行后面的命令。
||:只有当前面的命令执行失败时,才会执行后面的命。

# exec “ping”

1.png
2.png
3.png
4.png
ddd.png

# exec “eval”

1.png
2.png

# Over Permission

# 水平越权

水平越权是一种安全漏洞,指攻击者能够访问与其权限级别相同但本不应访问的其他用户的数据或功能
越权必须要有一个已知账号才可以进行,这里点击提示,获得三个账号
1.png
选择第一个,登录如下:
2.png
然后直接抓包,我们在数据包里面修改账户信息即可,就可以不用密码直接进入其他跟自己同级别的账号
3.png
4.png
改包发包就成功了

# 垂直越权

垂直越权(也称为权限提升)是指攻击者通过某种方式获取比其原有权限更高的系统权限,从而执行本不应允许的操作
点击提示得到两个账号,admin 是管理员账号,pikachu 是普通账户
1.png
登录 pikachu 账号,看一下只有查看权限
2.png
登录 admin 账号,有添加用户的权限
3.png
抓包替换与路径替换是一样的这里
admin 添加用户的路径为 url/vul/overpermission/op2/op2_admin_edit.php
4.png
然后登录 pikachu 账号粘贴 admin 添加用户的路径地址
添加账户
5.png
然后登录 admin 发现添加成功了
6.png

# 目录遍历

目录遍历(也称为路径遍历或…/ 攻击)是一种安全漏洞,允许攻击者访问 Web 应用程序所在服务器上的受限目录或文件,甚至读取、修改或删除系统关键文件
1.png

# 敏感信息泄露

敏感信息泄露就是到处找,比如源码、前端、robots.txt、头文件等等
1.png
查看源码,一顿翻找,获得账号密码
2.png
登陆成功
3.png

# PHP 反序列化

序列化 serialize ()
序列化说通俗点就是把一个对象变成可以传输的字符串,比如下面是一个对象:

1
2
3
4
5
class S{
public $test="pikachu";
}
$s=new S(); //创建一个对象
serialize($s); //把这个对象进行序列化

序列化后得到的结果是这个样子的:O:1:“S”:1:{s:4:“test”;s:7:“pikachu”;}
O: 代表 object
1: 代表对象名字长度为一个字符
S: 对象的名称
1: 代表对象里面有一个变量
s: 数据类型
4: 变量名称的长度
test: 变量名称
s: 数据类型
7: 变量值的长度
pikachu: 变量值
反序列化 unserialize ()
就是把被序列化的字符串还原为对象,然后在接下来的代码中继续使用。

$u=unserialize(“O:1:“S”:1:{s:4:“test”;s:7:“pikachu”;}”);
echo $u->test; // 得到的结果为 pikachu

序列化和反序列化本身没有问题,但是如果反序列化的内容是用户可以控制的,且后台不正当的使用了 PHP 中的魔法函数,就会导致安全问题

常见的几个魔法函数:
__construct () 当一个对象创建时被调用
__destruct () 当一个对象销毁时被调用
__toString () 当一个对象被当作一个字符串使用
__sleep () 在对象在被序列化之前运行
__wakeup 将在序列化之后立即被调用
漏洞举例:

1
2
3
4
5
6
7
8
class S{
var $test = "pikachu";
function __destruct(){
echo $this->test;
}
}
$s = $_GET['test'];
@$unser = unserialize($a);

# PHP 反序列化漏洞

payload:O:1:"S":1:{s:4:"test";s:29:"<script>alert('xss')</script>";}
输入这个概述中的 payload,成功弹窗,这就是将一个 xss 脚本进行了序列化
写一个小脚本测试一下

1
2
3
4
5
6
7
8
<?php
class S{
var $test="<script>alert(document.cookie)</script>";
}

$a=new S();
echo serialize($a)
?>

payload:O:1:"S":1:{s:4:"test";s:39:"<script>alert(document.cookie)</script>";}

测试成功,获得 cookie
1.png
2.png
3.png

# xxx

# URL 重定向

URL 重定向(URL Redirection)是指将一个 URL 的访问请求自动跳转到另一个 URL
这里 4 个链接,依次点击发现第三个 “像秋天的风一样的少年” 被重定向到了概述
1.png
我们直接 url/vul/urlredirect/urlredirect.php?url=https://www.baidu.com 让他跳转
2.png
遇到这种重定向我们可以抓包或者使用 curl

# SSRF

(Server-Side Request Forgery: 服务器端请求伪造)
其形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,但又没有对目标地址做严格过滤与限制
导致攻击者可以传入任意的地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据

数据流:攻击者 -----> 服务器 ----> 目标地址

根据后台使用的函数的不同,对应的影响和利用方法又有不一样

PHP 中下面函数的使用不当会导致 SSRF:
file_get_contents()
fsockopen()
curl_exec()

如果一定要通过后台服务器远程去对用户指定 (“或者预埋在前端的请求”) 的地址进行资源请求,则请做好目标地址的过滤。

# SSRF(curl)

点击链接,跳转到一个网页
1.png
2.png
这里看 url 可以发现它跳转到了其他服务器
3.png
我想让它跳转借用我的主机的小木马,file 读取本地文件
查看文件好像没传进去,那换一个以服务器的方式来
4.png
5.png
输入,然后查看网站文件,成功传入
6.png

# SSRF(file_get_content)

更新于

请我喝[茶]~( ̄▽ ̄)~*

麻糖 微信支付

微信支付

麻糖 支付宝

支付宝

麻糖 贝贝

贝贝