前言
2022.7.4
配合Brup Suite使用
🏆目标:通过练习,可以快速理解常见的web安全漏洞原理和测试方法,并能够在工作中进行具体的应用。
文章目录
暴力破解
从来没有哪个时代的黑客像今天一样热衷于猜解密码 —奥斯特洛夫斯基
基于表单的暴力破解
先随便输入账号和密码,brup suite进行抓包。
在Proxy—HTTP history可以看到抓到的数据包,其中username和password就是所输入的账号密码。然后对该报文send to intruder
首先在Positions,选择攻击类型,此次选cluster bomb,各类型的介绍可看burp suite的四种 attack type(攻击类型)
进行变量的设置,先点Clear,然后对username和password点Add
然后在Payloads,选择有效负载方式,一般选用字典,即Runtime file。字典的获取可以Google搜索下载……
选择字典文件,注意路径不要出现中文以及中文字符。
这样就可以发起简易攻击了
成功是否解决,看字节长度,不一样的大概就是成功暴出来的账号密码了。
验证码绕过(on server)
验证码:Completely Automated Public Turing Test to Tell Computers and Humans Apart (全自动区分计算机和人类的图灵测试)的简称
验证码绕过(on client)
先试试不输入验证码,看到提示框要求输入验证。
然后再试试输入错误的验证码,看到提示框验证码错误。
好,这次输入正确的验证码,账号密码随便输,进抓包,对该数据报send to repeater,发现我们随便输入的验证码,没有报错。所以可以推出,这个验证码尽在前端生成和验证,那么我们就利用一个验证码正确的数据包进行爆破,操作同上。
查看网页源代码,会发现一段函数,其作用是生成一样验证码。由此可以确定是前端生成的验证码,且还是字符串类型。
token防爆破?
XSS
概念基本原理见:XSS
反射型XSS ( get&post )演示
在输入出输入特殊字符(如这些\ / " ; * ? < > |)+“标识符”。看看输入的特殊字符有没有被输出,判断是否有被处理。输入:<>6666,点击提交。
然后按F12,打开源码查看,搜索刚才输入的标识符6666,定位。
可以发现输入的特殊字符被原封不动的输出,那么我们尝试输入JavaScript语句。
语句输入到一半时,发现不能输入了,原因是对长度进行了限制。这是在前端的安全设置,意义不是很大。兵来将挡水来土掩,在设置中打开web开发者工具,查找输入框语句。
可以看到长度为20,在后面敲多几个即可。
输入代码,我们可以看到在输入框中的语句被执行,出现了xss弹窗。
因为是反射性,一次性的,刷新页面之后弹窗消失。这个xss实际上是以get的方式提交的。
GET和POST典型区别:
GET是以url方式提交数据;POST是以表单方式在请求体里面提交;
GET方式的XSS漏洞更加容易被利用, 一般利用的方式是将带有跨站脚本的URL伪装后发送给目标,而POST方式由于是以表单方式提交,无法直接使用URL方式进行攻击。
存储型XSS漏洞跟反射型形成的原因一样,不同的是存储型XSS下攻击者可以将脚本注入到后台存储起来,构成更加持久的危害,因此存储型XSS也称“永久型”XSS。
存储型xss
同样也是先输入特殊符号+“标识符”,然后打开源码查找标识符,
输入代码,我们可以看到在输入框中的语句被执行,出现了xss弹窗。
当我们进行页面切换,然后再次切换回来,发现弹窗依然存在,说明我们输入的语句已经被存储起来。
与反射性差不多,唯一区别就是永久和一次性。
DOM型xss
XSS盲打
是指在攻击者对数据提交后展现的后台未知的情况下,网站采用了攻击者插入了带真实攻击功能的xss攻击代码(通常是使用script标签引入远程的js)的数据。当未知后台在展现时没有对这些提交的数据进行过滤,那么后台管理人员在操作时就会触发xss来实现攻击者预定好的“真实攻击功能”。
盲打只是一种惯称的说法,就是不知道后台不知道有没有xss存在的情况下,不管三七二十一,看到有存储型输入点,就输入xss代码,等待管理员中招,就叫盲打。
下面开始演示。
我们输入,设置一个弹窗,看看管理员在后台登陆上,是否会被x到。如果被x到这种场景就叫做盲打。
输入之后提交,点击提示,登录管理员网址。在右上角有个提示,点它就能看到后台地址。
一登录就弹出提示,中招。
对攻击者来说只是尝试的输入,并不知道后台是否被输出,只是尝试的输入跨站脚本。管理员被x到,攻击者成功。这种危害比较大,如果在前端输入一段盗取cookie的脚本,管理员一登陆,管理员的cookie就会被获取。攻击者就可以伪装管理员登陆后台,后台的权限就大了。
CSRF
原理见:CSRF
CSRF ( get/post )
首先随便使用一个账号登录,这里使用lili
登录后,我们对信息进行修改,这里修改地址信息,改为北京
通过Burp Suite抓包
这是我们的请求:/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=girl&phonenum=18656565545&add=%E5%8C%97%E4%BA%AC&email=lili%40pikachu.com&submit=submit
咦,没有token,说明并没有防CSRF的措施。
下面修改get请求,将地址%E5%8C%97%E4%BA%AC修改为%E6%B7%B1%E5%9C%B3
http://192.168.43.1/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=girl&phonenum=18656565545&add=%E6%B7%B1%E5%9C%B3&email=lili%40pikachu.com&submit=submit
在地址栏敲入上面URL,即CSRF成功。那些是URL编码
post型,因为是请求体,不能在url中,和xsspost类似需要自己弄一个站点,做一个表单,让Lucy点我们恶意站点表单的url,向页面提交post请求。
RCE
exec “ping”
输入任意一个IP进行测试,如:127.0.0.1 & ipconfig
结果出现中文乱码,可能是浏览器显示问题,不管。
exec “evel”
exec"evel",更简单。随意输入字符,返回文字。
eval(输入)也就是执行任何我们输入的数据,输入“phpinfo();”
可能遇到的问题
pikachu在火狐浏览器打开,Brup Suite抓不到包
因为我们按照教程一般是用127.0.0.1打开的,火狐浏览器会直接跳转,导致Brup Suite抓包失败。
解决方法:使用 **本机IP 访问靶场,**火狐浏览器会出现加载过程,于是burp suite 能抓取到内容
参考
web渗透入门靶场pikachu
Web安全从入门到“放弃”:https://www.ichunqiu.com/course/63838
皮卡丘靶场:https://github.com/zhuifengshaonianhanlu/pikachu