关于一个Web开发人员来说,Fiddler并不生疏。作为一款Web调试利器,它具有强壮的调试功用,灵敏的装备以及丰厚的可扩展功用。我在开发工作中,最喜爱的便是它的Inspectors和AutoResponder功用。别的,它能够解密HTTPS数据,支撑反向署理,也可用于中间人进犯。
关于一个对代码有洁癖的人来说,不仅在代码格局上有严厉的要求,对代码的健壮性,安全性相同严苛。因而,就连小小的(Full path disclosure)爆物理途径的bug也不容许存在。
当我是coder的时分,我用的东西是Fiddler,当我是一个hacker的时分,我用的是burp suite。由于我对java 没有一点好感,也对它不甚了解。所以我挑选开发一个Fiddler插件协助我检查出web体系中存在的爆途径页面。个人认为, Fiddler比burp suite更”接地气”。
开发的言语我挑选的是.NET言语中的C#。原因是Fiddler自身便是用C#编写,它对.NET的扩展有杰出的支撑。
规划原理与思路
规划这个插件的原理是这姿态的:在php中,有这样一些不安全的特性,比方htmlspecialchars这个函数,许多coder喜爱用这个函数来过滤用户的输入,测验代码如下:
php
echo htmlspecialchars($_GET['param1']);
?>
当咱们结构这样一个url时,http://localhost/test.php?param=1就会发现页面爆途径了。
看图:
报错级别为正告,具体原因是说,htmlspecialchars这个函数需求的是string 而你却插入了一个array。紧接着后边就爆出了物理途径。
在php中类似于htmlspecialchars由于传入一个数组而爆途径的函数有许多。像trim等操作字符串的函数。或许这样一个小小的bug只需求一个简略粗犷,快速有用的办法即可完美搞定。那便是在php文件最初增加
php
error_reporting(0);
......
?>
即可。但是形似许多闻名的CMS却不会挑选这种办法。
插件处理恳求的大体思路是这姿态的,看下图:
到此,咱们现已搞清楚了规划原理和规划思路。接下来就开端编写这个插件吧。
编写插件
在编写插件前,首先要搞清楚开发Fiddler插件的接口。
具体的阐明能够参阅Fiddler官网。http://docs.telerik.com/fiddler/Extend-Fiddler/ExtendWithDotNet
官方阐明文档并未具体解说Fiddler插件开发的一些细节。只能经过Reflector东西反编译Fiddler库,或许直接运用Visual Studio引证Fiddler库,检查其内部完成的细节。
当然咱们最需求搞清楚这几个接口办法就行了,如下:
public void OnLoad(){
/* 在这编写加载插件是需求履行的code 如加载UI */ }
public void OnBeforeUnload() {
/*编写在unload插件之前所要履行的code*/ }
public void AutoTamperRequestBefore(Session oSession){
/*在这编写恳求之前需求履行的code */}
public void AutoTamperRequestAfter(Session oSession){
/*在这编写恳求之后需求履行的code */}
public void AutoTamperResponseBefore(Session oSession){
/*在这编写呼应之前需求履行的code */}
public void AutoTamperResponseAfter(Session oSession){
/*在这编写呼应之后需求履行的code */}
public void OnBeforeReturningError(Session oSession){
/*在这编写有过错回来时需求履行的code */}
翻开visual studio 2013 新建Visual C#项目,项目类型挑选类库(library),.NET Framework版别依据所要开发的插件的功用挑选吧。
树立项目后有以下几个工作要做:
1.增加引证,将Fiddler库和Forms程序集加入到project中。
2.主张增加一个类,用于UI的规划和加载以及相关控件的事情处理。
3.为了便利调试,在项目特点的生成事情中,将编译好的dll复制到Fiddler的插件目录。
插件目录阐明:
一般来说用户自界说的插件主张放在: %userprofile%DocumentsFiddler2Scripts中。
当然你也能够放在Fiddler装置目录下的Scripts文件夹中。
如下图:
UserInterface类的代码如下:
class UserInterface : UserControl
{
private TabPage tabPage; //增加一个标签页 用来放置控件
private CheckBox chkb_Enabled; //用来启用或禁用插件
private TextBox textBox_Result; //用来保存最终的成果
private Button btn_Clear; //清空按钮
public bool bEnabled;
public delegate void Delegate_AddResult(string strUrl);//界说输出成果的托付
[1] [2] [3] [4] [5] 黑客接单网
WEB前端中最常见的两种安全危险,XSS与CSRF,XSS,即跨站脚本进犯、CSRF即跨站恳求假造,两者归于跨域安全进犯,关于常见的XSS以及CSRF在此不多议论,仅议论一些不太常见的跨域技能以及安全...
前语 现在Weblogic在全球的使用量占居前列,据统计,在全球范围内对互联网敞开Weblogic服务的财物数量多达35382台,其间归属我国区域的财物数量为10562台。假如迸发一个Weblogic...
咱们好!在开端正式的内容之前,请答应我做个简略的毛遂自荐。首要,我要阐明的是我不是什么安全研究人员/安全工程师,切当的来说我是一名安全的爱好者,这始于两年前的Uber。我喜爱触摸新的事物,而且每天都在...
问题描述: 假如用户输入的数据在未经处理的情况下刺进到一条SQL查询句子,那么运用将很可能遭受到SQL注入进犯,正如下面的比如: $unsafe_variable = $_POST['user_in...
因为一向在做 Web 缝隙扫描器的开发, 那么就必定少不了 Web 的缝隙测验环境, 其中就包含 bWAPP、DVWA、OWASP WebGoat 等这些国际品牌。 这些缝隙环境一般建立比较繁琐, 并...
Web安全准则 1.认证模块有必要选用防暴力破解机制,例如:验证码或许屡次接连测验登录失利后确定帐号或IP。 阐明:如选用屡次接连测验登录失利后确定帐号或IP的办法,需支撑接连登录失利确定战略的“答...