目录遍历漏洞
在web功能设计中,很多时候我们会要将需要访问的文件定义成变量,从而让前端的功能便的更加灵活。 当用户发起一个前端的请求时,便会将请求的这个文件的值(比如文件名称)传递到后台,后台再执行其对应的文件。 在这个过程中,如果后台没有对前端传进来的值进行严格的安全考虑,则攻击者可能会通过“../”这样的手段让后台打开或者执行一些其他的文件。 从而导致后台服务器上其他目录的文件结果被遍历出来,形成目录遍历漏洞。
点击图中圈出的部分
本关我们可以去包含hosts文件
敏感信息泄露
由于后台人员的疏忽或者不当的设计,导致不应该被前端用户看到的数据被轻易的访问到。 比如:
—通过访问url下的目录,可以直接列出目录下的文件列表;
—输入错误的url参数后报错信息里面包含操作系统、中间件、开发语言的版本或其他信息;
—前端的源码(html,css,js)里面包含了敏感信息,比如后台登录地址、内网接口信息、甚至账号密码等;
类似以上这些情况,我们成为敏感信息泄露。敏感信息泄露虽然一直被评为危害比较低的漏洞,但这些敏感信息往往给攻击着实施进一步的攻击提供很大的帮助,甚至“离谱”的敏感信息泄露也会直接造成严重的损失。 因此,在web应用的开发上,除了要进行安全的代码编写,也需要注意对敏感信息的合理处理。
查看前端代码,在注释中发现测试账号的信息
使用此账号,成功登录
打开开发者选项,在网络中重新载入请求,发现可以看到cookie中的密码
PHP反序列化
序列化和反序列化本身没有问题,但是如果反序列化的内容是用户可以控制的,且后台不正当的使用了PHP中的魔法函数,就会导致安全问题
输入O:1:"S":1:{s:4:"test";s:8:"test1234";}
提交一个序列化好的内容,但是里面的变量是一个恶意的JS,提交给后台,后台会对提交的数据进行反序列化,反序列化的过程中,会自动调用魔法方法
输入O:1:"S":1:{s:4:"test";s:29:"<script>alert('232')</script>";}
XXE
攻击者通过向服务器注入指定的xml实体内容,从而让服务器按照指定的配置进行执行,导致问题
也就是说服务端接收和解析了来自用户端的xml数据,而又没有做严格的安全控制,从而导致xml外部实体注入。
使用以下payload读取hosts文件
<?xml version="1.0"?> <!DOCTYPE ANY[ <!ENTITY f SYSTEM "file:///C:/Windows/System32/drivers/etc/hosts"> ]> <x>&f;</x>
URL重定向
不安全的url跳转问题可能发生在一切执行了url地址跳转的地方。
如果后端采用了前端传进来的(可能是用户传参,或者之前预埋在前端页面的url地址)参数作为了跳转的目的地,而又没有做判断的话,就可能发生"跳错对象"的问题。
url跳转比较直接的危害是:
–>钓鱼,既攻击者使用漏洞方的域名(比如一个比较出名的公司域名往往会让用户放心的点击)做掩盖,而最终跳转的确实钓鱼网站
点击第三个,会跳转到URL重定向的概述页面
点击第四个,改掉url为http://www.baidu.com,跳到百度页面
或者通过burp抓包
将此处的url的值改为www.baidu.com,发送请求包查看是否会跳转,经测试发现成功跳转至百度,此处存在url重定向漏洞,攻击者可以将该url发送给受害者点击,然后进行钓鱼攻击
SSRF(Server-Side Request Forgery:服务器端请求伪造)
其形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,但又没有对目标地址做严格过滤与限制
导致攻击者可以传入任意的地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据
数据流:攻击者----->服务器---->目标地址
curl
改为www.baidu.com,(不是浏览器直接请求的百度,而是我们的浏览器把这个参数传到了后端,后端的服务器请求百度,再返回前端)访问了百度页面
file_get_content
同样改为www.baidu.com,访问了百度页面
或者直接使用file协议读取系统配置文件
file:///c:/windows/win.ini