京峰教育学习笔记​

详解Android常用抓包工具的使用方法、技巧

fiddler调试工具详解及编写自动化脚本

1.1 fiddler script

Fiddler2 script fiddler2

\vmware-host\Shared Folders\文稿\Fiddler2\Scripts

1.2 应用场景

(修改返回值)场景1**:一个付费验证,是否付费会返回一个json。里面有一个时间戳和一个false。如果时间戳和客户端不一致,则为破解失败。**

那么你一定会这么想,有没有一个功能,可以只替换json里面部分参数,然后返回给客户端,而不是全部写死呢?于是,我们需要使用到script了!代码如下:如一个json是这个内容,baidu.com,返回了一个【name:timestampispay:false

if(oSession.fullUrl.Contains(“test01.php”)){ var responseStringOriginal = oSession.GetResponseBodyAsString(); var responseJSON = Fiddler.WebFormats.JSON.JsonDecode(responseStringOriginal); { //请求参数中,若type1**,对返回值做如下修改** responseJSON.JSONObject[‘ispay’] = “true”; // 重新设置****Response Body var responseStringDestinal = Fiddler.WebFormats.JSON.JsonEncode(responseJSON.JSONObject); oSession.utilSetResponseBody(responseStringDestinal); } }

    static function OnBeforeResponse(oSession: Session) {if (m_Hide304s && oSession.responseCode == 304) {oSession["ui-hide"] = "true";}if(oSession.fullUrl.Contains("test01.php")){var responseStringOriginal =  oSession.GetResponseBodyAsString();var responseJSON = Fiddler.WebFormats.JSON.JsonDecode(responseStringOriginal);{ //请求参数中,若type为1,对返回值做如下修改responseJSON.JSONObject['ispay'] = "true";// 重新设置Response Bodyvar responseStringDestinal = Fiddler.WebFormats.JSON.JsonEncode(responseJSON.JSONObject);oSession.utilSetResponseBody(responseStringDestinal);}}}

(修改请求值)场景2:我想要修改requestBody里面的部分参数,每次下完断点,修改完再提交,总会网络超时或者APP超时。这该怎么办?难道只能靠手速?

if(oSession.uriContains(“test01.php”)) { var strBody=oSession.GetRequestBodyAsString();// 获取****Request 中的body字符串 strBody=strBody.replace(“false”,“true”);// 用正则表达式或者replace方法去修改string,将false改为****true FiddlerObject.alert(strBody);// 弹个对话框检查下修改后的****body oSession.utilSetRequestBody(strBody);// 将修改后的body,重新写回Request}

(修改Cookie)场景3**:我想要修改cookie,改成一个付费过的cookie,但是需要实时生成,不能靠手速。这该怎么办?**

if(oSession.uriContains(“test01.php”)) { var sCookie = oSession.oRequest[“Cookie”]; // replace方法或者正则表达式的方法去操作cookie的****string sCookie = sCookie.Replace(“ispay=false”, “ispay=true”); oSession.oRequest[“Cookie”] = sCookie; }

(标记颜色)场景4**:我想要知道他到底有没有请求具体哪个网址,用查找速度太慢了。过滤也很慢。**

if (oSession.HostnameIs(“test02.php”)) { oSession[“ui-color”] = “red”; }

(保存数据)场景5:我想要自动保存某个接口的数据到本地,怎么才能实现?

if (oSession.fullUrl.Contains(“test02.php”) ){ **oSession.utilDecodeResponse();//**消除保存的请求可能存在乱码的情况 var fso; var file; fso = new ActiveXObject(“Scripting.FileSystemObject”); **//**文件保存路径,可自定义 file = fso.OpenTextFile(“C:\Sessions.txt”,8 ,true, true); //file.writeLine("Response code: " + oSession.responseCode); file.writeLine("Response body: " + oSession.GetResponseBodyAsString()); file.writeLine("\n"); file.close(); }

场景1:ß

修改返回值

//test01.php
<?php// echo "<h1>test</h1>";echo '{"timestamp":1645966180,"ispay":false}';
?>
    static function OnBeforeResponse(oSession: Session) {if (m_Hide304s && oSession.responseCode == 304) {oSession["ui-hide"] = "true";}if(oSession.fullUrl.Contains("test01.php")){var responseStringOriginal =  oSession.GetResponseBodyAsString();var responseJSON = Fiddler.WebFormats.JSON.JsonDecode(responseStringOriginal);{ //请求参数中,若type为1,对返回值做如下修改responseJSON.JSONObject['ispay'] = "true";// 重新设置Response Bodyvar responseStringDestinal = Fiddler.WebFormats.JSON.JsonEncode(responseJSON.JSONObject);oSession.utilSetResponseBody(responseStringDestinal);}}}

场景2

修改resquest的body

修改请求值

     if(oSession.uriContains("test01.php")){var strBody=oSession.GetRequestBodyAsString();// 获取Request 中的body字符串strBody=strBody.replace("false","true");// 用正则表达式或者replace方法去修改string,将false改为trueFiddlerObject.alert(strBody);// 弹个对话框检查下修改后的body oSession.utilSetRequestBody(strBody);// 将修改后的body,重新写回Request中}

场景3:

修改cookie

     if(oSession.uriContains("test01.php")) { var sCookie = oSession.oRequest["Cookie"]; //  用replace方法或者正则表达式的方法去操作cookie的stringsCookie = sCookie.Replace("ispay=false", "ispay=true"); oSession.oRequest["Cookie"] = sCookie;}

场景4:

(标记颜色)场景4**:我想要知道他到底有没有请求具体哪个网址,用查找速度太慢了。过滤也很慢。**

 //if (oSession.HostnameIs("test02.php")) {if (oSession.uriContains("test02.php")){oSession["ui-color"] = "red";}}

场景5:fso操作

写入txt

     if (oSession.fullUrl.Contains("test02.php") ){//if (oSession.uriContains("test02.php") ){oSession.utilDecodeResponse();//消除保存的请求可能存在乱码的情况var fso;var file;fso = new ActiveXObject("Scripting.FileSystemObject");//文件保存路径,可自定义file = fso.OpenTextFile("C:\\Sessions.txt",8 ,true, true);//file.writeLine("Response code: " + oSession.responseCode);file.writeLine("Response body: " + oSession.GetResponseBodyAsString());file.writeLine("\n");file.close();}

实战:利用burpsuite插件进行自动化探测

2.1 安装****jpython

2.2 安装 IntelligentAnalysis.py

<?php// echo "<h1>test03</h1>";echo '{"neme":13865692238,"ispay":false,"mail":xx@163.com}';
?>

注:此处是HaE插件产生的效果

即敏感信息标注,并提示。

正则规则:

BurpSuite Highlighter and Extractor

HaE is used to highlight HTTP requests and extract information from HTTP response messages or request messages.

Public Rules

rules:
- rule:- color: greenengine: dfaloaded: truename: Shiroregex: (=deleteMe|rememberMe=)scope: any- color: greenengine: dfaloaded: truename: JSON Web Tokenregex: (ey[A-Za-z0-9_-]{10,}\.[A-Za-z0-9._-]{10,}|ey[A-Za-z0-9_\/+-]{10,}\.[A-Za-z0-9._\/+-]{10,})scope: any- color: greenengine: dfaloaded: truename: Swagger UIregex: ((swagger-ui.html)|(\"swagger\":)|(Swagger UI)|(swaggerUi))scope: responsetype: Fingerprint
- rule:- color: yellowengine: nfaloaded: truename: Emailregex: (([a-zA-Z0-9][_|\.])*[a-zA-Z0-9]+@([a-zA-Z0-9][-|_|\.])*[a-zA-Z0-9]+\.((?!js|css|jpg|jpeg|png|ico)[a-zA-Z]{2,}))scope: response- color: orangeengine: nfaloaded: truename: Chinese IDCardregex: '[^0-9]((\d{8}(0\d|10|11|12)([0-2]\d|30|31)\d{3}$)|(\d{6}(18|19|20)\d{2}(0[1-9]|10|11|12)([0-2]\d|30|31)\d{3}(\d|X|x)))[^0-9]'scope: response body- color: orangeengine: nfaloaded: truename: Chinese Mobile Numberregex: '[^\w]((?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8})[^\w]'scope: response body- color: cyanengine: nfaloaded: truename: Internal IP Addressregex: '[^0-9]((127\.0\.0\.1)|(10\.\d{1,3}\.\d{1,3}\.\d{1,3})|(172\.((1[6-9])|(2\d)|(3[01]))\.\d{1,3}\.\d{1,3})|(192\.168\.\d{1,3}\.\d{1,3}))'scope: response- color: greenengine: nfaloaded: truename: MAC Addressregex: (^([a-fA-F0-9]{2}(:[a-fA-F0-9]{2}){5})|[^a-zA-Z0-9]([a-fA-F0-9]{2}(:[a-fA-F0-9]{2}){5}))scope: response- color: orangeengine: nfaloaded: falsename: Chinese Bank Card IDregex: '[^0-9]([1-9]\d{12,18})[^0-9]'scope: responsetype: Basic Information
- rule:- color: cyanengine: dfaloaded: truename: RCE Paramtersregex: ((cmd=)|(exec=)|(command=)|(execute=)|(ping=)|(query=)|(jump=)|(code=)|(reg=)|(do=)|(func=)|(arg=)|(option=)|(load=)|(process=)|(step=)|(read=)|(function=)|(feature=)|(exe=)|(module=)|(payload=)|(run=)|(daemon=)|(upload=)|(dir=)|(download=)|(log=)|(ip=)|(cli=))scope: request- color: yellowengine: dfaloaded: truename: Java Deserializationregex: (javax.faces.ViewState)scope: response- color: cyanengine: dfaloaded: truename: Debug Logic Parametersregex: ((access=)|(adm=)|(admin=)|(alter=)|(cfg=)|(clone=)|(config=)|(create=)|(dbg=)|(debug=)|(delete=)|(disable=)|(edit=)|(enable=)|(exec=)|(execute=)|(grant=)|(load=)|(make=)|(modify=)|(rename=)|(reset=)|(root=)|(shell=)|(test=)|(toggl=))scope: request- color: cyanengine: nfaloaded: truename: URL As A Valueregex: (=(https?://.*|https?%3(a|A)%2(f|F)%2(f|F).*))scope: request- color: yellowengine: dfaloaded: truename: Upload Formregex: (type=\"file\")scope: response bodytype: Maybe Vulnerability
- rule:- color: greenengine: dfaloaded: truename: OSSregex: ([A|a]ccess[K|k]ey[I|i][d|D]|[A|a]ccess[K|k]ey[S|s]ecret)scope: any- color: greenengine: nfaloaded: truename: Amazon AWS URLregex: (((([a-zA-Z0-9._-]+\.s3|s3)(\.|\-)+[a-zA-Z0-9._-]+|[a-zA-Z0-9._-]+\.s3|s3)\.amazonaws\.com)|(s3:\/\/[a-zA-Z0-9-\.\_]+)|(s3.console.aws.amazon.com\/s3\/buckets\/[a-zA-Z0-9-\.\_]+)|(amzn\.mws\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})|(ec2-[0-9-]+.cd-[a-z0-9-]+.compute.amazonaws.com)|(us[_-]?east[_-]?1[_-]?elb[_-]?amazonaws[_-]?com))scope: any- color: greenengine: nfaloaded: truename: Amazon AWS AccessKey IDregex: ((aws(.{0,20})?(?-i)['\"][0-9a-zA-Z\/+]{40}['\"])|((A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[a-zA-Z0-9]{16}))scope: any- color: greenengine: nfaloaded: truename: Amazon AWS Regionregex: ((us(-gov)?|ap|ca|cn|eu|sa)-(central|(north|south)?(east|west)?)-\d)scope: any- color: yellowengine: nfaloaded: truename: SSH Private Keyregex: ([-]+BEGIN [^\s]+ PRIVATE KEY[-])scope: response- color: greenengine: nfaloaded: truename: Windows File/Dir Pathregex: '[^\w](([a-zA-Z]:\\(?:\w+\\?)*)|([a-zA-Z]:\\(?:\w+\\)*\w+\.\w+))'scope: responsetype: Sensitive Information
- rule:- color: grayengine: nfaloaded: falsename: Linkfinderregex: (?:"|')(((?:[a-zA-Z]{1,10}://|//)[^"'/]{1,}\.[a-zA-Z]{2,}[^"']{0,})|((?:/|\.\./|\./)[^"'><,;|*()(%%$^/\\\[\]][^"'><,;|()]{1,})|([a-zA-Z0-9_\-/]{1,}/[a-zA-Z0-9_\-/]{1,}\.(?:[a-zA-Z]{1,4}|action)(?:[\?|#][^"|']{0,}|))|([a-zA-Z0-9_\-/]{1,}/[a-zA-Z0-9_\-/]{3,}(?:[\?|#][^"|']{0,}|))|([a-zA-Z0-9_\-]{1,}\.(?:php|asp|aspx|jsp|json|action|html|js|txt|xml)(?:[\?|#][^"|']{0,}|)))(?:"|')scope: any- color: pinkengine: dfaloaded: truename: Source Mapregex: (.js.map)scope: response body- color: magentaengine: nfaloaded: falsename: HTML Notesregex: (<!--[\s\S]*?-->)scope: anytype: Other

HaE is maintained by gh0stkey.

参考文章:

Jython 是什么

Fanly 问答 2019-08-03 11:24:35阅读(2432)

Jython(原 JPython),是一个用 Java 语言写的 Python 解释器。Jython 程序可以和 Java 无缝集成。除了一些标准模块,Jython 使用 Java 的模块。

Jython(原 JPython),是一个用 Java 语言写的 Python解释器。Jython 程序可以和 Java 无缝集成。除了一些标准模块,Jython 使用 Java 的模块。

Jython 几乎拥有标准的 Python 中不依赖于 C 语言的全部模块。比如,Jython 的用户界面将使用 Swing,AWT 或者 SWT。Jython 可以被动态或静态地编译成 Java 字节码。

Jython 还包括 jythonc,一个将 Python 代码转换成 Java 代码的编译器。这意味着 Python 程序员能够将自己用 Python 代码写的类库用在 Java 程序里。

许可协议

Jython 同时使用以下三种协议授权:

  • Python 软件基金会许可证(v2)
  • Jython 2.0, 2.1 许可协议
  • JPython 1.1.x 软件许可协议

前两个是自由软件协议。第三个还不清楚,因为还没有被自由软件基金会接受。

历史

Jim Hugunin 于 1997 年创造了 Jython,并将它发展到 1999 年。1999 年 2 月,Barry Warsaw 接管了他的工作。2000 年十月,Jython 项目被移动到 SourceForge。很长一段时间内主要由 Samuele Pedroni 负责维护和开发 Jython。2004 年底,Pedroni 将精力集中在 PyPy,但他仍然被认为是 Jython 内部管理层的一员。2005 年 1 月,Brian Zimmer 因开发 Jython 而得到 Python 软件基金会的资助。2005 年 12 月,Frank Wierzbicki 作为主要开发者接替了 Zimmer 的工作。2005 年,Jython 的发展因为缺少优秀的开发者而放缓

2008 年 3 月 3 日,太阳计算机公司就像之前雇佣 2 名 JRuby 开发者那样请来 Ted Leung 和 Frank Wierzbicki 为 Jython 和 Python 工作。 开发进度稳步增长。 Jython 现在甚至可以运行 Django(类似于 Ruby on Rails 的框架).

现状和未来

当前的 Jython 版本是 2017 年 7 月 1 日发布的 Jython 2.7.1

Jython 的优点

  • 与相似的 Java 程序相比,Jython 极大的的减少了编程代码量。
  • Jython 同时拥有解释器和编译器,使其无需编译就可以测试程序代码。

Burp插件 - 自动标记敏感信息

奶茶小仙女儿 2019-03-20

287107 人围观

+关注

如果你喜欢就在GitHub点个小星星吧,下载地址:https://github.com/nian-hua/BurpExtender/blob/master/IntelligentAnalysis.py

配置Jython环境

首先去Jython官网下载安装文件

安装过程一直点下一步就好啦,不过要记住这个安装位置:

安装成功后打开Burp的扩展:

选择刚刚记住安装路径下的jython.jar

加载我们刚编写的扩展。

扩展的使用

查看Proxy History:

如果返回的数据包中有身份证信息会被标记成红色

如果返回的数据包中含有手机号信息会被标记成蓝色

如果返回的数据包中含有GPS位置信息会被标记成绿色

在Burp 扩展的output窗口,会详细输出匹配到的敏感信息,方便以后查询。

这个Json Decoder的功能是在GitHub上一个开源功能,但是它并不支持修改解析后的数据,所以我修改了一下之后将它加入到了我的程序里,

后记

如果你觉得还有什么应该标记的话,可以在下方留言哦,如果你有什么建议或意见欢迎访问我的个人博客。

下载地址在:

https://github.com/nian-hua/BurpExtender/blob/master/IntelligentAnalysis.py

喜欢的话点个star

详解Android常用抓包工具的使用方法、技巧-学习笔记20220416相关推荐

  1. (转载)网络抓包原理及常用抓包工具

    感谢和转载于: https://blog.csdn.net/l61052319940708/article/details/80624900 本文以App作为例子,实际应用不限于App范围. 前言:本 ...

  2. Android 各种抓包工具抓包总结

    前言 这篇文章算是总结一下我之前抓包遇到的一些问题, 个人属性里带bug, 所以遇到的问题会比较多, 算是给大家提供一个抓包抓不到应该如何解决的思路. 工具介绍 Android中可用的抓包软件有fid ...

  3. 常用抓包工具(可编程抓包工具)

    一.网络抓包工具 1.wireshark 网络抓包工具,可以抓取除应用层,整个网络的数据包 用途:一般用来作为网络分析工具使用 地址:https://www.wireshark.org/ 二.应用层抓 ...

  4. 常用抓包工具,手机调试工具大合集

    1.抓包工具 mac推荐:Charles windows推荐:fiddler 2.移动端调试工具 vconsole(直接npm即可安装) weinre(https://www.v2ex.com/t/2 ...

  5. php获取微信文章阅读数,详解PHP+fiddler抓包采集微信文章阅读数点赞数的思路

    简介: 分析接口知道要获取文章阅读数和点赞数必须有key和uin这两个关键参数,不同公众号key不一样(据说有万能微信key,不懂怎么搞到),同一个公众号key大概半小时会过期 提交链接获取文章阅读量 ...

  6. 抓包工具Wireshark基本介绍和学习TCP三次握手

    原文链接:http://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html#threehand,肖佳 之前写过一篇博客:用 Fiddler ...

  7. 原生高性能抓包工具Proxyman,送给爱学习的你

    现在的抓包工具可谓是五花八门,比如Fiddler,Charles,LightProxy等,各有各的优缺点,最近又看到一个新的抓包工具,像我这样一个有强烈好奇心的人,怎么能错过,我们一起来学习下吧! 一 ...

  8. Android平台抓包工具TCPDump

    下载tcpdump,http://www.strazzere.com/android/tcpdump,不知道具体版本. 详细使用请参考http://www.tcpdump.org/里面的文档 你需要r ...

  9. shark for android,Android手机抓包工具shark for root抓包参数

    Android手机root后,安装shark for root(内带tcpdump)可以很方便的在手机上直接抓包,免去了各种电脑连接.网络连接的麻烦,最重要的是可以方便的在手机移动网络(如cmnet. ...

  10. http抓包工具及协议登录技巧讲解

    chrome DevTools F12快捷键 chrome开发者工具 五个重要的面板 ###Network面板 查看网络请求,比如post,get,请求头,资源等返回都可以在这里查看 method:一 ...

最新文章

  1. python编程标准_python编程规范
  2. PythonEditor 中文图形化编程网站即将正式启用
  3. 国内免费Blog博客程序评测(含ASP/PHP/.net)
  4. CF917B MADMAX
  5. INTEL和AMD两大巨头的前身
  6. 如何让你的QQ不再掉线!
  7. Bootstrap源代码多行代码
  8. centos7系统引导自动重启_分享一个实用的脚本——全自动一键批量性安装Linux系统...
  9. tomcat安装apr报错解决
  10. 关于AVOD, 你需要知道的事
  11. 空间参考(一)---墨卡托投影、高斯-克吕格投影、UTM投影的异同
  12. LeetCode-21. 合并两个有序链表_JavaScript
  13. Python 黑板客爬虫闯关的第一关
  14. align-item 与 align-content 的区别
  15. 单片机闪灯c语言,PIC单片机入门之闪灯程序
  16. WindowsStore_LTSC 2019_win10商店恢复包
  17. Jetson nano (4GB B01) 系统安装,官方Demo测试 (目标检测、手势识别)
  18. 删除桌面上文件,提示此文件位置不在当前位置?
  19. 微信公众号开发----生成带参数的临时二维码
  20. 一劳永逸批量启动Jar包

热门文章

  1. mtkwin10驱动_MTK手机刷机驱动下载|MTK通用USB刷机驱动 Win7/Win10 自动安装版 下载_当下软件园_软件下载...
  2. windows CMD 下 长ping 加时间戳,亲测有效
  3. 3D打印机改装雕刻机经验分享
  4. win10任务栏图标空白的解决方案
  5. 3dsmax软件和maya软件各自的优劣势是什么?
  6. android表情选择器,android 新浪微博客户端的表情功能的实现
  7. linux英特尔蓝牙驱动,IntelBluetoothFirmware 英特尔蓝牙驱动
  8. STK Component Insight3D控件-WPF方式
  9. Mac 下 CocoaPods软件⁩汉化
  10. Struts2框架中为什么要继承ActionSupport类,以及实现过程