个人学习笔记四

DNS重绑定漏洞

在网页浏览过程中,用户在地址栏中输入包含域名的网址。浏览器通过DNS服务器将域名解析为IP地址,然后向对应的IP地址请求资源,最后展现给用户。而对于域名所有者,他可以设置域名所对应的IP地址。当用户第一次访问,解析域名获取一个IP地址;然后,域名持有者修改对应的IP地址;用户再次请求该域名,就会获取一个新的IP地址。对于浏览器来说,整个过程访问的都是同一域名,所以认为是安全的。(浏览器同源策略) 这就是DNS Rebinding攻击。
通过DNS重绑定攻击可以绕过同源策略,攻击内网的其他设备。

攻击条件


1.攻击者可以控制恶意的DNS服务器,来回复域名查询,如 www.attacker.com
2.攻击者可以欺骗用户在浏览器加载 www.attacker.com。可以通过多种方式,从网络钓鱼到持久性XSS,或购买HTML横幅广告,来实现这一目标。
3.攻击者 控制 www.attacker.com 钓鱼网站的服务器。

攻击原理 


1.受害者打开钓鱼邮件的链接,他们的Web浏览器会发出DNS查询请求,查询www.attacker.com的IP地址,基本流程:浏览器缓存 -> 系统缓存 -> 路由器 缓存 -> ISP DNS解析器缓存 -> 根域名服务器 -> 顶级域名服务器 -> 权威域名服务器,具体解析过程可参考之前关于DNS的介绍文章。
2.攻击者控制的DNS服务器收到受害者的DNS请求时,会使用www.attacker.com的真实IP地址93.185.216.36进行响应。 它还将响应的TTL值设置为0秒,以便受害者的机器不会长时间缓存它。
3.受害者的浏览器向钓鱼网站服务器发出HTTP请求加载网页。
4.攻击者进行HTTP响应,并通过JS加载一些恶意代码,该页面反复向www.attacker.com 发出POST请求。(POST请求包含恶意代码)
5.因为之前DNS ttl设置为0,缓存很快就失效,所以浏览器继续向恶意权威域名服务器发出查询。
6.此时,恶意DNS服务器收到查询后,回复一个内网设备的IP(也可以是一些物联网设备),如192.168.0.5。
7.因为满足同源策略,浏览器认为是安全的,于是向内网其他设备发送POST恶意请求。

为什么绕过了同源策略?


因为同源策略浏览器看的是协议,域名,端口,这些并没有变化,而背后的IP地址却已经变了,所以造成了跨域的请求。


TTL是什么?


TTL是英语Time-To-Live的简称,意思为一条域名解析记录在DNS服务器中的存留时间。当各地的DNS服务器接受到解析请求时,就会向域名指定的NS服务器发出解析请求从而获得解析记录;在获得这个记录之后,记录会在DNS服务器中保存一段时间,这段时间内如果再接到这个域名的解析请求,DNS服务器将不再向NS服务器发出请求,而是直接返回刚才获得的记录;而这个记录在DNS服务器上保留的时间,就是TTL值。
它表示DNS记录在DNS服务器上缓存的时间,数值越小,修改记录各地生效的时间越快。

摘自 https://www.cnblogs.com/PsgQ/p/14668035.html#/c/subject/p/14668035.html

信息泄露包含:目录遍历、phpinfo、git泄露(包含log stash、index 工具githack)、svn泄露、hg泄露

什么是目录遍历?


目录遍历(目录穿越)是一个Web安全漏洞,攻击者可以利用该漏洞读取运行应用程序的服务器上的任意文件。 这可能包括应用程序代码和数据,后端系统的登录信息以及敏感的操作系统文件。
在某些情况下,攻击者可能能够在服务器上写入任意文件,(如,FFFTP是一款小型的FTP客户端软件。FFFTP客户端没有正确地验证FTP服务器所返回的LIST命令响应中包含有目录遍历序列(斜线)的文件名,如果用户受骗从恶意的FTP服务器下载的目录包含有带有恶意文件名的文件的话,就可能导致向用户系统的任意位置写入文件)从而允许他们修改应用程序数据或行为,并最终完全控制服务器。

漏洞原理


若web要显示一个商品的图像,有时候开发者会用通过HTML加载,如:

<img src="/loadImage?filename=214.png">


使用filename参数加载图像文件,图片文件位置可能映射在 /var/www/images/ 上,所以真实的路径是 /var/www/images/214.png 
这就导致了攻击者可以读取服务器上的任意文件:

https://www.*****.com/loadImage?filename=../../../etc/passwd


filename的参数值与真实路径组合起来就是:

/var/www/images/../../../etc/passwd


其等价于:
/etc/passwd
在Unix操作系统上,../ 是一个标准的返回上一级路径的语法;
在Windows操作系统上, ../ 和 ..\ 都是返回上一级的语句。

绕过:
1.绝对路径 直接传入etc/passwd
2.双写../绕过  ....//(waf把../替换为空格)
3.url编码绕过 

    .   =>  %2e
    /   =>  %2f
    % => %25  (双重URL编码)


4.绝对路径配合../
    例如filename=var/www/images/../../../etc/passwd
5.截断文件后缀
    某些waf对filename的文件类型作了限制,只有当后缀为图片时才解析
    这时候就可以利用 %00 来截断:
    filename=../../../etc/passwd%00.jpg
原文链接:https://blog.csdn.net/angry_program/article/details/107855078

flask框架漏洞
https://www.jianshu.com/p/56614e46093e
有关ssti详细的文章http://tttang.com/archive/1698/#toc_ssti-labs

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值