本篇签到记录dvwa前五个漏洞的low级别测试过程和结果。顺便复习一下之前接触过的几个漏洞。
phpstudy+dvwa环境的搭建不难,这里就不详细说了,详细参照博客。
phpstudy下搭建dvwa
Brute Force,即暴力(破解),是指黑客利用密码字典,使用穷举法猜解出用户口令,是现在最为广泛使用的攻击手法之一。主要利用工具和字典穷举密码,进行渗透。一般在弱类型密码和没设置多次密码错误锁定账户时,容易产生爆破漏洞。
参考更多
下面开始测试dvwa的brute force的low级别:
爆破的话,就得寄出神器brupsuite了。
1.设置代理,抓包:
然后抓到了之后可以比较容易看出,GET方式提交请求;
2.Ctrl+I交给intruder模块,clear$,在password上加上$,表示不断改变password的值。
3.载入字典,然后点击start attack。我是在网上下了一个,其实也可以自己制作攻击字典。(自制字典)
4.最后发现password的长度与众不同,且是最长的,可推测password即为正确密码,手工验证登陆,发现正确。
其实,在看完源代码后发现,这里有明显的SQL注入漏洞:
$query="SELECT*FROM`users`WHEREuser='$user'ANDpassword='$pass';";
$result=mysql_query($query)ordie(''.mysql_error().'
');
这里没有任何的语句过滤和检测,直接用最简单的SQL注入语句,如:
admin' #
admin' or ''='
admin' or '1'='1
就直接KO了。
Command Injection,即命令注入,是指通过提交恶意构造的参数破坏命令语句结构,从而达到执行恶意命令的目的。PHP命令注入攻击漏洞是PHP应用程序中常见的脚本漏洞之一。对于一些需要调用cmd的web应用,容易出现这种漏洞。
更多参考以下两个链接:
http://blog.csdn.net/hitwangpeng/article/details/45716821
http://www.freebuf.com/vuls/139924.html
从源码种可以看出,这里其实是一个ping命令:
if( stristr( php_uname( 's' ), 'Windows NT' ) ) {
// Windows
$cmd = shell_exec( 'ping ' . $target );
}
window和linux系统都可以用&&来执行多条命令
那么我们可以用&&执行多个命令:
127.0.0.1&&net user
后言:
在做这个样例的时候,我发现我的浏览器的编码不太对劲,ping后,输出的是乱码:
百度后,得到解决方法:
打开项目的目录:x://.../DVWA/dvwa/includes,打开dvwaPage.inc.php文件,大约275行左右,
把这里的gbk 改为gb2312 ,保存一下便可
编码改变参考
CSRF,全称Cross-site request forgery,翻译过来就是跨站请求伪造,是指利用受害者尚未失效的身份认证信息(cookie、会话等),诱骗其点击恶意链接或者访问包含攻击代码的页面,在受害人不知情的情况下以受害者的身份向(身份认证信息所对应的)服务器发送请求,从而完成非法操作(如转账、改密等)。
简单的说,由于用户浏览网页时,留下了cooike等身份认证信息,黑客诱惑用户点击链接等,直接利用用户的身份进行一些非法操作。与XSS不同的是,CSRF是诱使用户主动去点击,但是XSS是但一个cookie,然后,黑客或任何人都可以复制这个cookie,非法操作。
这里是一个修改密码的例子:
按理说,只有我用我的身份才能改密码,但是,如果我在别的网站点击了一个链接,然后进了一个如图的url,那么我就在我不知情的情况下,主动的被改了密码。
随便交个passwd:123
观察url:
http://127.0.0.1/DVWA/vulnerabilities/csrf/?password_new=123&password_conf=123&Change=Change
注意:这里改的密码是dvwa的管理密码,也就是登陆dvwa的密码,这点一定注意,最好再改回来,免得忘记密码,登不上dvwa的尴尬。= =(经验)
File Inclusion,意思是文件包含(漏洞),是指当服务器开启allow_url_include选项时,就可以通过php的某些特性函数(include(),require()和include_once(),require_once())利用url去动态包含文件,此时如果没有对文件来源进行严格审查,就会导致任意文件读取或者任意命令执行。文件包含漏洞分为本地文件包含漏洞与远程文件包含漏洞,远程文件包含漏洞是因为开启了php配置中的allow_url_fopen选项(选项开启之后,服务器允许包含一个远程的文件)。
简单地说,用了文件包含,可以少写很多代码,但是黑客可以构造url,来包含别的文件(其实就是访问服务器上别的文件,有的也可以远程包含——可以执行远程服务器下的恶意代码)。
样例有好几个文件,随便打开一个看看,发现url的变化:
我们也可以模仿这个url,构造url包含更多的文件,比如配置文件。
linux下所有的用户名,密码信息会放在/etc/shadow下,所以构造:
http://127.0.0.1/DVWA/vulnerabilities/fi/?page=etc/shadow
然后发现报错,没这个文件,这是因为服务器系统不是Linux(我的dvwa装在win 7虚拟机)。
但是有不错的发现:
Warning: include(etc/shadow): failed to open stream: No such file or directory in C:\security\phpstudy\WWW\DVWA\vulnerabilities\fi\index.php on line 36
Warning: include(): Failed opening 'etc/shadow' for inclusion (include_path='.;C:\php\pear;../../external/phpids/0.6/lib/') in C:\security\phpstudy\WWW\DVWA\vulnerabilities\fi\index.php on line 36
这里可以看出文件的目录!!
那么,接下来我们试着访问别的文件:
假如在该路径下有别的机密文件,恰好可以访问的到!!
File Upload,即文件上传漏洞,通常是由于对上传文件的类型、内容没有进行严格的过滤、检查,使得攻击者可以通过上传木马获取服务器的webshell权限,因此文件上传漏洞带来的危害常常是毁灭性的,Apache、Tomcat、Nginx等都曝出过文件上传漏洞。
这个漏洞在表哥的课上也是重点演示的,可帅了!
1.先构造个一句话木马:
2.上传一句话木马,这里low没有任何过滤检查,直接上传php都行。。。
3.打开菜刀,链接这个上传的路径。
4.下面木马执行,就得到了服务器webshell,可以为所欲为了(下载更改文件)。
完