一,暴力破解:
初级难度的爆破没什么复杂,主要用于熟悉爆破流程和对工具的使用,如上图先随便输入用户名和密码,然后打开burp suite进行拦截。
数据包中可以看到我们随便输入的用户名和密码,因为要爆破,所以鼠标右键把该数据包发送到intruder中去爆破。
在intruder中首先关注这几个点:由于burp suite识别到多个关键字,而我们只需要用户名和密码就行,先点击clear取消所有的选择,然后双击一个我们需要选中的关键词,然后点ADD。这样第一个关键词就被选中,接着再点第二个关键词也就是密码那里添加。最后在Attack type处选择攻击方式,这里考虑到多个关键词所以使用集束炸弹(cluster bomb)
设置好攻击方式后,到Payloads中设置字典
Payload set指的是刚才添加的一号关键词,即我们刚刚添加的用户名,下方的几个用户名是我手动输入的几个用户名,真实情况下直接从别的字典中复制粘贴或者加载自己的字典上去,密码也一样如下图。
准备完毕后就点击右上角的start attack开始爆破
爆破结果如图,按照返回结果长度排序总能发现有一个返回结果长度不一样的,是因为一般情况下报错信息和正确信息所返回的信息不一样,通过这个可以判断正确的用户名和密码的组合。输入用户名和密码,通过。
二,命令注入:
这里ping命令注入就是在可以输入ping命令输入框中输入其他可以在命令提示符中运行的命令如“whoami”用于显示本机用户,一般在输入一个IP地址后 &(与)上一条命令。
爆出有用户信息
三,跨站请求伪造:
CSRF即跨站请求伪造,是一种对网站的恶意利用,通过获取正常用户的cookie来伪造身份对网站进行访问。
这一关中给的是一个密码修改界面,我们修改密码后对其抓包
当然也可以不抓包,毕竟用的是GET传参,相关信息都可以通过网址那一栏看到.直接把包含信息的一行做成网页链接,另开一个页面并访问。
第一次在框内输入两次不一样的密码,网站会报错密码不匹配。此时复制此时的网址用另一个页面(另一个浏览器也可以),将密码改成两次一样并访问
发现密码成功被修改,本次修改密码的操作正常用户(第一个页面的用户)并没有修改成功,修改密码的是另一个恶意用户(第二页面)。其之所以能修改密码是因为他拥有第一个用户的cookie,虽然恶意用户并不知道cookie的内容是什么,但只要有这个cookie就可以把他当成身份证一样在网站上进行访问。
四,文件包含:
文件包含是一种在编程中使用的技术,主要用于将一个文件的内容插入到另一个文件中。它通常在需要在不同文件之间共享代码、数据或其他资源时使用。文件包含有助于减少代码的重复,提高代码的可维护性和可重用性。若攻击者修改了文件包含的对象,让其执行了带有恶意代码的文件,则会造成一系列的安全问题。
题目的网页有三个可运行的程序,点击其中一个则会执行相应的代码。GET的传参方式也标出了其具体调用了哪个文件。
我们创建一个txt文档里面写入一个一句话木马。写完后将其后缀改为".php"
这个test.php模拟的是恶意文件 ,为了方便演示,我直接把他放在这道题的相同目录下。
恶意文件被正确执行。
五,文件上传:
文件上传主要是通过网站可上传文件的方式提交恶意文件,比如网站本意是提交图片,,但攻击者却提交了可执行文件,并通过连接工具进行远程执行。
php写一个一句话木马,php 中eval函数用于把内部的代码当作php执行。
网站没有对目标文件进行限制,同时也爆出了文件上传的位置。
为了验证是否上传成功,我们再写一个内容为 <? php phpinfo(); ?> 的脚本上传,根据上传的文件路径访问。
发现脚本被成功执行。说明文件上传成功。
接着使用使用蚁剑工具链接,先创建一个新的数据。
URL地址就是文件被上传的位置,链接密码是eval函数中POST发送的数据,比如我写的是password。
之后点击添加,打开添加的数据,就直接进入了目标网站的服务器了。
六,不安全验证码:
Insecure CAPTCHA即不安全验证码,通过图灵测试来检测当前操作人员是否为人类。但不安全验证码就是指可以被绕过验证过程的验证码机制。本关是通过数据包中的set值来判断用户进行到哪一步,若set值为2,则网站会自动逃过验证直接修改密码。
七,SQL注入:
数据库注入通过找到网站存在的数据库注入点向后台数据库拼接上一段恶意的SQL语言代码并成功执行。如输入1:
看得出来该输入是整型变量输入,下一步基于现有输入进行注释如 1'#
接着开始找注入点: 1' and 1=1 order by 2#
由回显信息可知存在注入点,后续即可在该注入点写入其他语句爆出个人信息。
八,SQL盲注:
不论输入什么,基本上都是一个回显,那就是无回显SQL注入。考虑最极端的情况就是任何输入都无回显,可以使用时间盲注:1' and if(length(database())=4,sleep(5),0)# 这句话来猜数据库名的长度为4,若正确,则延时5秒。虽然效率很低但可以做。
九,弱会话ID:
session ID 是客户端第一次与服务器建立会话时为客户端生成的一个身份识别码,之后服务器识别客户端一般是通过客户端发送的cookie中包含的sessionID进行判断用户身份,弱session ID被其他人获取,则其他用户可以使用该sessionID伪造一个身份,绕过身份识别。该漏洞与跨站请求伪造有些相似,但跨站请求伪造是获取用户cookie(一般不知道cookie内部是什么),而弱会话标识符则是会话标识符被预测(动态sessionID的规律被识破)或者被截取(一般存在于cookie中)。cookie一般存在于本地中,客户端可以修改,而sessionID是由服务器发出,客户端无法对其进行修改。
每点击一次cookie中的dvwaSession就会增加1,这就是动态sessionID,而且规律被预测,所以我们只需要在另一网站输入网址并附带上其cookie,cookie中的sessionID加上一就可以顺利登上该页面。
十,DOM型XSS:
在选择框中选择French,网址栏中也会显示,在XSSlabs中我们知道这是GET传参,直接在网址栏写入漏洞测试点。把default=后改成<script>alert(1)</script>
成功注入。
十一,反射型XSS:
对于现在阶段的漏洞检测,反射型与DOM类型没太大区别,都是针对单个用户的一次性脚本。所以刚才的方法也适用。
十二,储存型XSS:
与反射型最大区别就是,该类型是将脚本写入网站前端,会长久保存,每个在该网站出发脚本的用户都会被脚本执行恶意代码。
一般储存型XSS存在于留言板的网站中,如上图,输入name和message,如果输入的留言是个脚本语言被成功上传,则会被留在网站前端,每次刷新都会出现脚本的弹窗,也就是说,每个进来的用户都会受到该脚本的影响。
十三 ,CSP Bypass:
CSP(Content Security Policy)即内容安全策略,这种机制通过对加载到该网页的来源进行限制,指定可以被加载的资源,,从而加大对安全防护。
查看源代码,发现代码使用headerCSP来指定安全策略,script-src用于指定网页可以包含的来源:https://pastebin.com
hastebin.com
www.toptal.com
example.com
code.jquery.com
https://ssl.google-analytics.com
打开其中一个如 https://pastebin.com,看样子是一个留言网站,我们在这里留下注入语句
点击raw生成存有该脚本的网页
这样一个被信任的网页就可以被加载到目标网站了。
十四,JavaScript:
查看源码发现所谓输入的success是要被加密的,先被rot13加密,在被md5加密,找个线上加解密网页即可。
拿到了由js在前台生成的token,抓包将token值修改即可。