文章目录
- 知识补充
- CSRF
- SSRF
- xss与csrf结合创建管理员账号
知识补充
NAT:网络地址转换,可以将IP数据报文头中的IP地址转换为另一个IP地址,并通过转换端口号达到地址重用的目的。即通过将一个外部IP
地址和端口映射
更大的内部IP
地址集来转换IP地址。
端口映射:在数据传输结束后,会将端口释放掉,若进行了端口映射,那么公网数据包只要是该映射端口,就会固定发送到对应的私有ip
功能:NAT不仅能解决了lP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。把内网的私有地址,转化成外网的公有地址。使得内部网络上的(被设置为私有IP地址的)主机可以访问Internet。
TTL = 600秒,意味着 DNS 服务器缓存解析记录 600 秒(十分钟),在这十分钟内更改 DNS 解析的记录值是不会生效的,需要等十分钟后,DNS 服务器缓存更新才可以生效
设置的时间长短对网站有什么影响?
1、TTL值大 = 减少DNS递归查询过程,提升域名解析速度。稳定的网站,其 DNS 的解析记录发生变更的频率比较低。如果 TTL 值比较大, DNS 的解析结果在全国各地 localdns 中的缓存时间很长,这样当用户访问网站时,就无需经过复杂的 DNS 的递归解析过程。通过最近的本地 DNS 返回域名的解析结果,解析速度变快。
2、TTL值小 = 更新速度快。网站在新创阶段,因为需要频繁测试,其 DNS 的解析记录发生变更的频率比较高。如果 TTL 值比较小,解析速度很快就会生效。
PHP2(url二次编码)
CSRF
CSRF的攻击过程两个条件:
1、目标用户已经登录了网站,能够执行网站的功能。
2、目标用户访问了攻击者构造的URL。
CSRF安全问题黑盒怎么判断:
1、看验证来源不-修复
2、看凭据有无token–修复
3、看关键操作有无验证-修复
CSRF安全问题白盒怎么审计:
同黑盒思路一样,代码中分析上述三看
b占 CSRF 05:Token和非Session参数部分的Cookie做了绑定:其中包含bp构造html,绑定的绕过
SSRF
SSRF 是一种攻击者发起的伪造 由服务器端发起请求的一种攻击
SSRF 危害
@ 端口扫描
@ 内网Web应用指纹识别
@ 攻击内网Web 应用
@ 读取本地文件
SSRF常见代码
参考链接
SSRF利用
SSRF信息搜集
file 伪协议
探查服务器所在ip段所有主机,利用burp进行爆破
再次使用 file:///proc/net/arp
进行扫描,显示内网存在主机
dict 伪协议
相对于其它伪协议对tcp
端口进行扫描的话,dict会更快一些
http 伪协议
http 伪协议 是用来探测内网目录的
假如我们已经扫描到内网主机172.250.250.4
我们随机加入一个页面
eg:172.250.250.4/index.php
常用字典,kali中自带的有:/usr/share/wordlists/drib
gopher 伪协议
Gopher是Internet上一个非常有名的信息查找系统,它将Internet上的文件组织成某种索引,很方便地将用户从Internet的一处带到另一处。
参考文章
在使用get时,可以进行提交,使用post时就不能够传参
使用post时,只能将数据内容提交到ssrf服务器上进行解析,但其不能post到另一台服务器
在使用GET传参时,可以进行构造,如下,直接点击submit提交即可。
还有另一种方式,就是将构造出来的内容进行两次编码。
POST提交,和上面一样,将构造内容进行两次url编码,直接send即可。
SSRF之gopher协议深度解析
content-length一定要与实际长度一致
127.0.0.1 回环绕过
302 重定向绕过ip限制
主要针对私网地址被限制的情况,使用302重定向进行访问。
在公网服务器上创造页面,狗仔重定向代码
eg:php
<?php
header('Location: http://127.0.0.1/flag.php');
使用php -s可以进行监听该端口
DNS重绑定绕过
1,上传之后若是域名,则需要进行DNS解析;
4,在服务端请求时同样需要域名解析
生成域名解析,将两个ip对应同一域名主机。
访问域名网站,获取flag
小迪演示
-案例说明:小迪在登录后台管理自己网站的时候,突然群里给小迪说阿祖又说爱上别人了,随后给我发了个URL链接,小迪直接点了进去,GG!
小迪网站:http://127.0.0.1:8105/
发送URL:http://127.0.0.1:8081/web/add.html
访问这个地址,其实就是管理员添加账号密码的数据包
前提条件:
1.管理员要提前登录(没有登录就没有权限触发)
2.访问了这个地址
3.要知道怎么添加用户,知道添加用户的数据包
利用流程:
1、获取目标的触发数据包
2、利用CSRFTester
构造导出
3、诱使受害者访问特定地址触发
那么应该怎么构造数据包呢,这里我们在本地搭建,然后用到工具CSRFtest
运行bat程序,然后把浏览器端口修改为8008
在触发添加数据包的时候,同时在工具中start
会抓取你操作的数据包
在下面选择forms表单,然后把他生成为html格式,放在网站目录:
访问数据包地址:http://127.0.0.1:8081/web/add.html
然后在登录状态去访问http://127.0.0.1:8081/web/add.html
用户被创建成功。但是自己抓的包不能成功。
那么应该怎么防御这种漏洞呢?
CSRF安全问题黑盒怎么判断:
1、看验证来源不(同源策略)-修复
2、看凭据有无token–修复
3、看关键操作有无验证-修复
-CSRF安全问题白盒怎么审计:
同黑盒思路一样,代码中分析上述三看
验证来源:
打开百度,修改图片地址,让他指向xiaodi8.com
当点击图片的时候,抓取数据包,关键字段Referer: https://www.baidu.com/
可以说明这个数据包的来源
是从baidu.com
中来的。
在自己的博客上添加用户,抓取数据包,可以看到Referer: http://47.100.167.248/zb_system/admin/member_edit.php?act=MemberNew
这个的来源是自己点进来的,不是从baidu.com中来的。
相当于管理员触发http://127.0.0.1:8081/web/add.html,最后访问了http://127.0.0.1:8105/地址,那么对于http://127.0.0.1:8105/的网站来源是http://127.0.0.1:8081/web/add.html
如果做了同源策源,不是自己网站触发的数据包,就认定为非法来源。这样子就可以起到防御效果。但是这个在数据包中能够修改。
怎么判断有没有同源策略,
点过来的,有同源,能访问
复制点过来的地址,直接访问(如果能访问,没有同源策略,如果不能访问,有同源策略)
看凭据有无token
查看cookie值:看cookie值里面有没有带token,token_21d330cd=c36ce18a6e6d189b137244e7429e954e2a34b53000bce07d6fe72af52488f9fe1646377072;
无token的数据包
xss与csrf结合创建管理员账号
- 管理员账号可以添加用户管理
- 添加用户为ajest,密码为123456
- 登录ajest,验证登录情况
- 登录成功,可以进入后台
- 删除之后再次验证,无法登录
- 利用xss,在评论处插入代码构造CSRF
- 管理员查看到留言后,出发js,此时CSRF构造成功
有效防御
小迪第39天参考链接
小迪第40天参考链接