Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
kali-linux-web-pentest-cookbook-zh
提交
58ce602a
K
kali-linux-web-pentest-cookbook-zh
项目概览
OpenDocCN
/
kali-linux-web-pentest-cookbook-zh
通知
4
Star
4
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kali-linux-web-pentest-cookbook-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
58ce602a
编写于
10月 10, 2016
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
4.2~4.3
上级
87ee07a8
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
78 addition
and
0 deletion
+78
-0
ch2.md
ch2.md
+78
-0
未找到文件。
ch2.md
浏览文件 @
58ce602a
...
...
@@ -97,3 +97,81 @@ Nmap 是个端口扫描器,这意味着它可以向一些指定 IP 的 TCP 或
+
masscan
+
amap
+
Metasploit scanning module
## 2.2 识别 Web 应用防火墙
Web 应用防火墙(WAF)是一个设备或软件,它可以检查发送到 Web 服务器的封包,以便识别和阻止可能的恶意封包,它们通常基于签名或正则表达式。
如果未检测到的 WAF 阻止了我们的请求或者封禁了我们的 IP,我们渗透测试中就要处理很多的麻烦。在执行渗透测试的时候,侦查层面必须包含检测和是被 WAF,入侵检测系统(IDS),或者入侵阻止系统(IPS)。这是必须的,为了采取必要的手段来防止被阻拦或禁止。
这个秘籍中,我们会使用不同的方法,并配合 Kali Linux 中的工具,阿里为检测和识别目标和我们之间的 Web 应用防火墙的存在。
### 操作步骤
1.
Nmap 包含了一些脚本,用于测试 WAF 的存在。让我们在 vulnerable-vm 上尝试它们:
```
nmap -p 80,443 --script=http-waf-detect 192.168.56.102
```
![](img/2-2-1.jpg)
好的,没检测到任何 WAF。所以这个服务器上没有 WAF。
2.
现在,让我们在真正拥有防火墙的服务器上尝试相同命令。这里,我们会使用
` example.com`
,但是你可以在任何受保护的服务器上尝试它。
```
nmap -p 80,443 --script=http-waf-detect www.example.com
```
![](img/2-2-2.jpg)
Imperva 是 Web 应用防火墙市场的主流品牌之一。就像我们这里看到的,有一个保护网站的设备。
3.
这里是另一个 Nmap 脚本,可以帮助我们识别所使用的设备,并更加精确。脚本在下面:
```
nmap -p 80,443 --script=http-waf-fingerprint www.example.com
```
![](img/2-2-3.jpg)
4.
另一个 Kali Linux 自带的工具可以帮助我们检测和是被 WAF,它叫做
`waf00f`
。假设
` www.example.com`
是受 WAF 保护的站点:
```
wafw00f www.example.com
```
![](img/2-2-4.jpg)
### 工作原理
WAF 检测的原理是通过发送特定请求到服务器,之后分析响应。例如,在
` http-waf-detect`
的例子中,它发送了一些基本的恶意封包,并对比响应,同时查找封包被阻拦、拒绝或检测到的标识。
` http-waf-fingerprint`
也一样,但是这个脚本也尝试拦截响应,并根据已知的不同 IDS 和 WAF 的模式对其分类。
`wafw00f`
也是这样。
## 2.3 查看源代码
查看网页的源代码允许我们理解一些程序的逻辑,检测明显的漏洞,以及在测试时有所参考,因为我们能够在测试之前和之后比较代码,并且使用比较结果来修改我们的下一次尝试。
这个秘籍中,我们会查看应用的源代码,并从中得出一些结论。
### 准备
为这个秘籍启动 vulnerable_vm。
### 操作步骤
1.
浏览
<http://192.168.56.102>
。
2.
选择 WackoPicko 应用。
3.
右击页面并选择
`View Page Source`
(查看源代码)。会打开带有页面源代码的新窗口:
![](img/2-3-1.jpg)
根据源代码,我们可以发现页面所使用的库或外部文件,以及链接的去向。同时,在截图中可以看到,这个页面拥有一些隐藏的输入字段。选中的是` MAX_FILE_SIZE`,这意味着,当我们上传文件时,这个字段判断了文件允许上传的最大大小。所以,如果我们修改了这个值,我们可能就能够上传大于应用所预期的文件。这反映了一个重要的安全问题。
### 工作原理
网页的源代码在发现漏洞和分析应用对所提供输入的响应上非常有用。它也提供给我们关于应用内部如何工作,以及它是否使用了任何第三方库或框架的信息。
一些应用也包含使用 JS 或任何其它脚本语言编写的输入校验、编码和加密函数。由于这些代码在浏览器中执行,我们能够通过查看页面源代码来分析它,一旦我们看到了校验函数,我们就可以研究它并找到任何能够让我们绕过它或修改结果的安全缺陷。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录