1.redirect ådispatcher
2.Java+SpringBoot实现接口代理转发
3.node-http-proxy 源码解读
4.微信小程序反编译
redirect ådispatcher
RequestDispatcher.forward()æ¹æ³åHttpServletResponse.sendRedirect()æ¹æ³çåºå«æ¯ï¼
åè ä» æ¯å®¹å¨ä¸æ§å¶æç转åï¼å¨å®¢æ·ç«¯æµè§å¨å°åæ ä¸ä¸ä¼æ¾ç¤ºåºè½¬ååçå°åï¼ä»æ¯ä¸ä¼æ¹å Requestçå¼ï¼å¦æä½ éè¦å¨ä¸ä¸ä¸ªé¡µé¢ä¸è½ä»ä¸è·åæ°çä¿¡æ¯çè¯ï¼ä½ å¯ä»¥Request.setAttribute()æ¥æ¾ç½®ä¸äºæ å¿ï¼è¿æ ·ä»ä¸ä¸ä¸ªé¡µé¢ä¸è·åï¼
åè åæ¯å®å ¨ç跳转ï¼æµè§å¨å°ä¼å¾å°è·³è½¬çå°åï¼å¹¶éæ°åé请æ±é¾æ¥ï¼æ¤æ¬¡è¯·æ±å°ä¸¢å¤±Request çå¼ãè¿æ ·ï¼ä»æµè§å¨çå°åæ ä¸å¯ä»¥çå°è·³è½¬åçé¾æ¥å°åã
æ以ï¼åè æ´å é«æï¼å¨åè å¯ä»¥æ»¡è¶³éè¦æ¶ï¼å°½é使ç¨Request Dispatcher.forward()æ¹æ³ï¼å¹¶ä¸ï¼è¿æ ·ä¹æå©äºéèå®é çé¾æ¥ã
å¨æäºæ åµä¸ï¼æ¯å¦ï¼éè¦è·³è½¬å°ä¸ä¸ªå ¶å®æå¡å¨ä¸çèµæºï¼åå¿ é¡»ä½¿ç¨HttpServletResponse.sendRequest()æ¹æ³ã
转ååéå®åçåºå«
ä¸è¦ä» ä» ä¸ºäºæåéä¼ å°ä¸ä¸ä¸ªé¡µé¢è使ç¨sessionä½ç¨åï¼é£ä¼æ æ å¢å¤§åéçä½ç¨åï¼è½¬åä¹è®¸å¯ä»¥å¸®å©ä½ 解å³è¿ä¸ªé®é¢ã
éå®åï¼ä»¥åçrequestä¸åæ¾çåéå ¨é¨å¤±æï¼å¹¶è¿å ¥ä¸ä¸ªæ°çrequestä½ç¨åã
转åï¼ä»¥åçrequestä¸åæ¾çåéä¸ä¼å¤±æï¼å°±åæ两个页é¢æ¼å°äºä¸èµ·ã
æ£æå¼å§ï¼
å æ¯çä¸å»ä¸åï¼ä»ä»¬çè°ç¨åå«å¦ä¸ï¼
request.getRequestDispatcher("apage.jsp").forward(request,源码 response);//转åå°apage.jsp
response.sendRedirect("apage.jsp");//éå®åå°apage.jsp
å¨jsp页é¢ä¸ä½ ä¹ä¼çå°éè¿ä¸é¢çæ¹å¼å®ç°è½¬åï¼
æå¨åå¦jspçæ¶åï¼å¯¹è¿ä¸¤ä¸ªæ¦å¿µé常模ç³ï¼çå«äººçä¾åçæ¶åï¼ä¹æ¯ä¸å¤´é¾æ°´ï¼ä¸ç¥éä»ä¹æ¶å该ç¨åªä¸ªãå¸æä¸é¢ç解说è½å¯¹ä½ ææ帮
å©ã
æå°è½¬ååéå®åå°±ä¸å¾ä¸æå°requestä½ç¨åãå¾å¤åå¦è é½ç¥éå½æ们æ交ä¸ä¸ªè¡¨åæ¶ï¼å°±å建äºä¸ä¸ªæ°ç请æ±ãå®é ä¸ï¼å½æ们ç¹å»ä¸ä¸ª
é¾æ¥æ¶ï¼ä¹å建äºä¸ä¸ªæ°ç请æ±ãé£ä¹ä¸ä¸ªè¯·æ±çä½ç¨äºå°åºæå¤å¤§å¢ï¼ä¾å¦ï¼
å¨é¡µé¢a.jspä¸æä¸ä¸ªé¾æ¥è¿æ¯æåbçä¸ä¸ªé¾æ¥ï¼èä¸è¿å¸¦äºä¸ä¸ªåæ°ãå½æ们ç¹å»è¿ä¸ªè¿æ¥çæ¶åï¼å°±äº§çäºä¸
个请æ±ï¼ä¸ºäºæ确起è§ï¼æ们æå®å«årequestA->Bãç°å¨ï¼å¨b.jsp页é¢ä¸æ们就å¯ä»¥ä»è¿ä¸ªè¯·æ±ä¸è·åä¿¡æ¯äºãå¨b.jspä¸ä½ å¯ä»¥åå ¥out.pr
intln(request.getParameter("id"))è¿è¡æµè¯ãä¸é¢æ´å¤æä¸ç¹ï¼æ们å¨b.jsp页é¢ä¸å¢å ä¸é¢çè¯å¥ï¼
request.setAttribute("name","funcreal");
out.println(request.getAttriblute("name"));//æåæ¾ç¤ºäºnameåéçå¼ã
ç°å¨å¨b.jspä¸åå¢å ä¸ä¸ªé¾æ¥ï¼è¿æ¯æåcçä¸ä¸ªé¾æ¥ï¼èä¸è¿å¸¦äºä¸ä¸ªåæ°,å½æ们ç¹å»è¿ä¸ªè¿æ¥çæ¶åï¼å°
产çä¸ä¸ªæ°ç请æ±ï¼è¿æ¶requestA-Bä¹å°±å®æ¯äºï¼æ°ç请æ±å«årequestB-Cãåæ ·çéçï¼å¨c.jsp ä¸ï¼æ们å¯ä»¥è®¿é®å°çåéåªæageï¼å 为i
dï¼nameè¿ä¸¤ä¸ªåéé½å±äºrequestA-Bï¼æ¤æ¶ä»å·²ç»ä¸åå¨äºãä¸é¢æ¯æºä»£ç ï¼
a.jsp
æåb.jspï¼èä¸è¿å¸¦äºä¸ä¸ªåæ°id=1ãrequestA-Bç°å¨è¯çäº
b.jsp
requestA-Bå·²ç»ç»æäºãæåc.jspï¼èä¸è¿å¸¦äºä¸ä¸ªåæ°age=
c.jsp
é£ä¹è½¬ååæ¯æä¹åäºå¢ï¼ç°å¨å¢å ä¸ä¸ªé¡µé¢å«åd.jspï¼å¹¶ä¸å¨c.jspä¸åé¢å¢å ä¸å¥
d.jsp
requestB-Cçéçªå·²ç»ä¼¸å°äºd.jsp页é¢
è¿è¡ç¨åºï¼ä½ ä¼åç°c页é¢ä¸çå 容没ææ¾ç¤ºåºæ¥ï¼å 为forwardæ¯èªå¨æ§è¡çï¼å°åæ ä¸è½ç¶æ¯c.jspä½å®é ä¸ï¼ä½æµè§å¨ä¸æ¾ç¤ºçå·²ç»æ¯d.js
pçå 容äºï¼èä¸çå°äºä»b.jspä¼ è¿æ¥çåæ°ãä½ å¯ä»¥ç®åå¾è¿æ ·ç解ï¼è½¬åï¼å°±æ¯å»¶é¿äºrequestB-Cçä½ç¨åï¼
page="d.jsp"/>ï¼è¿ä¸å¥è¯å®é ä¸æ¯æc.jspåd.jspç²å°äºä¸èµ·ï¼ä»ä»¬å°±åæ¯å¨ä¸ä¸ªé¡µé¢ä¸ã
å¦æä½ ç¨è¿strutsï¼é£ä¹ä½ å°±ç¥é为ä»ä¹å¨Actionä¸ï¼æåä¸å¥å ä¹æ»æ¯mapping.findForward("xxx");äºãå 为æ们å¨è¿ä¸ªActionä¸è®¾ç½®ç请
æ±ä½ç¨åçåéé½å°ä¼å¨ä¸ä¸ä¸ªé¡µé¢ï¼ä¹è®¸æ¯å¦ä¸ä¸ªActionï¼ä¸ç¨å°ï¼æ以è¦ç¨è½¬åã
æ»ç»ï¼
ç¨éå®åå转åä¸æ¯ä¸ä¸ªä¹ æ¯é®é¢ãèæ¯ä»ä¹æ åµä¸å¿ é¡»ç¨ä»ä¹çé®é¢ã
ä¸è¦ä» ä» ä¸ºäºæåéä¼ å°ä¸ä¸ä¸ªé¡µé¢è使ç¨sessionä½ç¨åï¼é£ä¼æ æ å¢å¤§åéçä½ç¨åï¼è½¬åä¹è®¸å¯ä»¥å¸®å©ä½ 解å³è¿ä¸ªé®é¢ã
éå®åï¼ä»¥åçrequestä¸åæ¾çåéå ¨é¨å¤±æï¼å¹¶è¿å ¥ä¸ä¸ªæ°çrequestä½ç¨åã
转åï¼ä»¥åçrequestä¸åæ¾çåéä¸ä¼å¤±æï¼å°±åæ两个页é¢æ¼å°äºä¸èµ·ã
1ãdispatchè¿æ¯åæ¥çrequestï¼ä½æ¯redirectåæ¯éæ°å»ºç«ä¸ä¸ªrequestã
2ãdispatchåºæ¬ä¸é½æ¯è½¬åå°contextå é¨çèµæºï¼èredirectå¯ä»¥éå®åå°å¤é¨çèµæº,å¦ï¼ req.sendRedriect(" = "/newpath/jsa.jsp";
response.setHeader("Location",newLocn);
%ï¼
5.JSPä¸å®ç°å¨æ页é¢åçè¥å¹²ç§å,èªå¨éå®åå°å¦ä¸é¡µé¢
å¨htmlæ件ä¸ï¼ä¸é¢ç代ç ï¼
<meta /download/ 下载并安装。
wxappUnpacker:从 /xuedingmiaojun/wxappUnpacker 获取,强制注意安装。源码
微信开发者工具:访问 /miniprogram/dev/devtools/download.html 下载,强制直接安装。源码app视频通话源码
二、强制召唤源码小程序包提取使用模拟器或安卓手机,源码确保手机已root,强制安装文件管理器如re文件管理器或MT管理器。源码
在模拟器或手机中使用adb或夜神模拟器的强制nox_adb进行以下操作:
执行`adb shell ls -l /data/data/com.tencent.mm/MicroMsg/`查看目录。
在用户目录下查找exapkg包,源码执行`adb shell ls /data/data/com.tencent.mm/MicroMsg/db3beb9ebe0b5edab8d1/appbrand/pkg/`。强制
删除小程序目录下所有文件,源码娜娜源码执行`adb shell rm -f /data/data/com.tencent.mm/MicroMsg/db3beb9ebe0b5edab8d1/appbrand/pkg/*`。强制
三、源码使用微信开发者工具将提取的包发送到PC端,使用`adb pull`命令将整个pkg目录发送到PC的pidstat源码指定目录。
四、配置wxappUnpacker安装wxappUnpacker依赖:`npm install`。
五、运行wxappUnpacker执行`node wuWxapkg.js D:\tmp\tmp\pkg\_-_.wxapkg`。源码鸡蛋
反编译后的文件将生成同名的文件夹,包含反编译的js文件。
六、使用微信开发者工具打开源码点击“使用测试号创建”,即可查看反编译后的源码。
抓包流程使用Proxifier或Charles抓包,具体步骤如下:
对于Proxifier:安装Proxifier,添加代理指向burp/fuddler监听的端口。
设置代理规则匹配微信小程序相关进程。
对于Charles:下载并激活Charles代理软件。
在Windows选项卡中设置默认不开启window代理,配置代理规则匹配所有流量,通过代理转发。
最后提示:- 使用微信开发者工具和反编译工具进行微信小程序开发和研究。
- 使用安全工具如Proxifier或Charles抓包,确保遵守法律和伦理规范。
- 本教程仅用于学习和研究,避免非法用途。