暴力破解
low
题目界面如上
先抓个包试试,发送到intruder
可以看到用GET数据包传输,username和password都是直接写在了url上
在password后面的数字上加上$ 123 $ 这样好进行替换。
报错,没有加载字典,在知乎上找到了一篇文章讲字典的
找到了一个老的字典库
开始攻击,
发现其他的密码返回的长度都是4645和4646,只有正确的密码返回的是4695,所以说密码是password。
至于attack type是什么个意思,接下来告诉你。
Attack type:攻击模式设置
Sniper:对变量一次进行破解,多个标记依次进行。(俗话简单来说就是,用户名和密码用的是一套字典,破解的时候也只是导入一个字典,但是它会根据先破解用户名,破解出来以后急需破解密码这样的顺序,对于简单的用户名密码字典数目少的可以考虑)
Battering
ram:对变量同时进行破解,多个标记同时进行。(这个也是只有一个字典但区别是,可以同时进行,就是先破解用户名破解完了继续破解密码,相比遇上一个速度更快)Pitchfork:每一个变量标记对应一个字典,取每个字典的对应项。(这个意思就是,每个变量一个字典,破解的时候每个字典的一号对应另一个字典的一号进行破解,这样破解对于那些一一对应的用户名密码来说速度很快,但很明显我们没办法准确的定位用户名和密码,显然不适用于每个情况)
Cluster
bomb:每个变量对应一个字典,并且进行交际破解,尝试各种组合,适合于用户名加密码破解。(这种情况就是普罗大众很容易明白理解的情况就是多个字典进行笛卡尔积,依次破解,这种就会有多种组合,时间上也是一个问题,当然对于需要用时很长的,我们可以添加进程,用来适量缩短时间)
medium
medium的页面看起来和low没啥区别。
操作起来也没啥区别,依旧可以破解
high
这一关与之前的区别主要在于token
(解释来自于百度)
Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,并作出相应提示,在这样的背景下,Token便应运而生。Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。Token的目的是为了减轻服务器的压力,减少频繁的查询数据库,使服务器更加健壮。
可见GET数据包内的确使用了token,攻略里面说token和密码都需要爆破
在setting中,找到Grep-Extract选项卡,单击add,选择refetch response
多次操作之后出现了302重定向,需要重新抓包
装载字典
装载recursive
设置错误
经过修改之后发现了,攻击模式需要改为Pitchfork,并且需要选择变量的攻击模式,变量1选择常规字典字典,变量2选择recusice grep模式。
命令注入
什么是命令注入:
命令注入就是在需要输入数据的地方输入了恶意代码,而且系统并没有对其进行过滤或者其他处理导致恶意代码也被执行,最终导致数据泄露或者正常数据被破坏。
常用到的命令:(总结来说就是系统操作命令DOS命令都可以在此执行试试)ipconfig,net user(查看系统用户),dir(查看当前目录),find(查找包含指定字符的行),whoami(查看系统当前有效用户名)A&B(简单的拼接,AB之间无制约关系),A&&B(A执行成功才会执行B),A|B(A的输出作为B的输入),A||B(A执行失败,然后才会执行B)
low
127.0.0.1类似于ping命令
乱码问题没有遇到,不过改成中文应该更容易看吧,我来试试。
然并卵,没有啥*用,仍然是英文界面,不过英文界面就英文界面吧。OK,输入一下127.0.0.1 & ipconfig 试试
果不其然执行了,net user一下
也可以执行
systemifo查一下系统
也阔以,蛋疼的是截图只能截一半
dir看下目录
也行
medium
查看源代码之后发现了转义的变换,也就是说我们使用非&&命令就好了,所以可以使用 | 或者 &
让我们试试
均一切正常
high
还是看源码,发现了对||的转义有问题,可以在|和|之间存在空格,所以可以通过||完成之前的操作
而单个的|则不能完成
文件上传
什么是文件上传漏洞:
大部分的网站和应用都有上传功能,如用户头像上传,图片,logo,文档等。一些文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型,导致允许攻击者像某个可通过web访问的目录上传任意php文件,并能够将这些文件传递给php解释器,就可以在远程服务器上执行任意php脚本。
当系统存在文件上传漏洞同时攻击者可以将病毒,木马,webshell,其他恶意脚本或者是包含了脚本的图片上传到服务器,这些文件将对攻击者后续攻击提供便利。根据具体漏洞的差异,此处上传的脚本可以使正常后缀的php,asp以及jsp脚本,也可以是篡改后缀后的这几类脚本。
文件上传漏洞是指由于程序员在对用户文件上传部分的控制不足或者处理缺陷,而导致的用户可以越过其本身权限向服务器上传可执行的动态脚本文件。这里上传的文件可以是木马,病毒,恶意脚本或者WebShell等。这种攻击方式是最为直接和有效的,“文件上传”本身没有问题,有问题的是文件上传后,服务器怎么处理、解释文件。如果服务器的处理逻辑做的不够安全,则会导致严重的后果。
造成文件上传漏洞的原因及原理
原因:
1 对于上传文件的后缀名(扩展名)没有做较为严格的限制
2 对于上传文件的MIMETYPE(用于描述文件的类型的一种表述方法) 没有做检查
3 权限上没有对于上传的文件目录设置不可执行权限,(尤其是对于shebang类型的文件)
4 对于web server对于上传文件或者指定目录的行为没有做限制
原理:
在 WEB 中进行文件上传的原理是通过将表单设为 multipart/form-data,同时加入文件域,而后通过 HTTP
协议将文件内容发送到服务器,服务器端读取这个分段 (multipart)
的数据信息,并将其中的文件内容提取出来并保存的。通常,在进行文件保存的时候,服务器端会读取文件的原始文件名,并从这个原始文件名中得出文件的扩展名,而后随机为文件起一个文件名
( 为了防止重复 ),并且加上原始文件的扩展名来保存到服务器上。文件上传可能带来的安全问题:
-上传文件是web脚本语言,服务器的web容器解释并执行了用户上传的脚本,导致代码执行;
-上传文件是flash的策略文件crossdomiain.xml,黑客用以控制flash在该域下的行为;
-上传文件是病毒、木马,黑客用以诱骗用户或者管理员下载执行;
-上传文件是钓鱼图片或为包含了脚本的图片,在某些版本的浏览器中会被作为脚本执行,被用于钓鱼和欺诈。
写一个一句话木马
上传一个一句话木马
尝试构造一下访问地址,但是只显示了phpinfo
修改之后成功,发现是一句话木马写错了:
修改过后是这样的:
注意斜划线的书写很重要。
medium
这一关对上传的格式进行了限制,只能上传图片,看来需要上传图片马了吧。
看了攻略只是采取的是使用抓包的手法。
抓包之后是这个样子的,发给repeater,把后缀修改为png,
显示没有上传成功
发现是需要修改Content-Type: image/jpeg
修改完毕上传成功了
high
我们会发现如果只是简单的把一句话木马的文件后缀进行修改后仍旧无法上传,那是因为对文件头进行限制,所以简单的修改后缀已经无法满足了。接下来需要用到的是图片马,什么意思,就是把你的一句话木马文件的内容复制到图片上面,通过上传图片,把一句话木马传进去。
图片马生成命令:copy 666.png /b + 1.txt /a 888.png(//666是图片,1.txt是一句话木马所在的文件,888是复制完成之后的图片命名)
无法上传,可能是因为图片大小太大了,改一下。
必须按照命令的写法,有空格的地方必须空格,生成好了
现在上传,果然成功了。