"渗透测试" 标签

InfluxDB API 未授权访问漏洞简单利用

作者: LandGrey ●   创建时间: 2018年12月8日 15:24 ●   标签:   #渗透测试

0x00: 简介 InfluxDB 是一个使用Go语言编写的开源分布式,支持高并发的时序数据库。在 InfluxDB 中,每条数据都可以粗略看成是虚拟 key=value 的形式,如语句INSERT cpu,host=serverA,region=us_west value=0.64表示往数据库中插入一条指标名为 cup, 标签集 host为 serverA, region 为 us_west 的, 值是 0.64 的数据。具体的数据概念和含义可以参考 InfluxDB 官方文档。InfluxDB 提供三种操作方式:CLIHTTP (包括API 接口和Web 管理界面)各语言的API库但实际上以上操作方式其实都是在调用 InfluxDB 实现的 API 接口,API 接口的两个常用操作是 query(查询数据)和 write(更改数据)。0x01: 产生原因InfluxDB 的Web 操作界面默认运行在 localhost 8083 端口; HTTP API 接口默认运行在 localhost 8086 端口如果直接将只能本机访问到的 localhost 改为内网或者公网IP,没有配置访问控制的口令,便可能会产生未授权访问漏洞。0x02: 漏洞发现扫描默认的 8083 ...

更多 →

再谈CSRF漏洞防御

作者: LandGrey ●   创建时间: 2018年6月19日 19:50 ●   标签:   #渗透测试,   #Web安全备忘录

漏洞简述用户认证成功后访问或点击了黑客控制的网站链接,浏览器根据黑客网页代码指示,使用用户的身份凭证(Cookie)自动请求服务器,冒充用户身份完成恶意操作。 根本原因HTTP协议是无状态的协议,所以引入了Cookie机制来辨识和跟踪用户,但Cookie最初被设计成允许在第三方网站发起的请求中携带,从而成为CSRF漏洞滋生的土壤。 利用流程测试思路下面的英文描述更清楚简洁一点 Perform the request without modifying the parameters, see what the result is Remove the CSRF token completely Modify one of the characters in the token (keep the length same) Remove the value of the token (leave the parameter in place) POST request cnvert to a GET request ...

更多 →

关于PHP/JSP/ASP的一些Webshell检测绕过研究

作者: LandGrey ●   创建时间: 2018年5月27日 17:41 ●   标签:   #渗透测试

不再单独搬砖了,请去下列地址去查看:Github文章和Webshell合集 :webshell-detect-bypass先知社区:php一句话木马检测绕过研究利用Java反射和类加载机制绕过JSP后门检测构造免杀的asp一句话木马

更多 →

突破封闭Web系统的技巧之旁敲侧击

作者: LandGrey ●   创建时间: 2017年12月27日 22:50 ●   标签:   #分享,   #渗透测试,   #思考

前言:在互联网安全服务公司乙方工作的人或者进行SRC众测等相关渗透测试时,经常碰到客户只给一个"xxx信息管理系统"、"xxx平台"之类的一个Web登录界面的系统的链接地址,其它全凭自己造化,去找漏洞吧!我将上面讲的"需要认证后才能进入系统进行操作,但是当前没有认证凭证"的web系统统一称为"封闭的Web系统",本文认为阅读人员有一定的渗透测试经验,并将就如何突破封闭的Web系统,进行探讨。分享自己的思路与常用技巧,欢迎同道中人一起交流思路。 注:本文有一定的攻击性操作,仅为安全从业人员渗透测试思路交流,请在法律条规允许的范围内进行安全测试。一:文章脉络《突破封闭Web系统的技巧》由两篇文章组成。这是第二篇文章"旁敲侧击"。下面是本文的脉络:旁敲侧击 0x00: 扫端口扩范围 0x01: 寻找测试域名 0x02: 微信公众号与APP 0x03: 寻找蛛丝马迹 0x04: 何方CMS 0x05: 历史漏洞搜索 0x06: 大杀四方二:旁敲侧击经过我们的一阵自杀式……哦不对,字典式冲锋,发现我们将自己意淫成管理员企图从心里战胜"封闭系统"的想法失败了。进不去就是进不去啊,一个低危洞都没有,看来是这系统比较安全了。但是回头一瞟,隔壁座位上的老王喜笑颜开,3个高危已经轻松提交上去,还有2个中危都不屑一看…… 自己心里想着"我真菜",然后决定彻底放弃。直到某天,老王感觉亏欠你太多,向你娓娓道出他那天所施展的姿势……0x00:扫端口扩范围在正面冲锋失败后,我们应该暂时放弃"通过合法的凭证进入Web系统"这个想法,扩散思维,不再局限于Web系统,多关注操作系统、中间件的层面。端口扫描做为一项常用技术,可用nmap、masscan、zmap等工具进行端口探测和服务识别,不再赘述。值得注意的是:不要着急就只扫描TCP协议的端口,UDP协议的端口也不要放过。扫描到一些有趣的端口和服务,就可以尽情的去玩耍了。如果有较多有可能被拿下的服务端口开放,无形中我们直接拿下服务器的概率会大大增加。当别人还在"冲锋"时,我们可能早就通过某不知名端口部署的其它Web应用系统的中间件漏洞进入系统了~0x01:寻找测试域名有些厂商在开发其Web系统时,可能会先单独分配个测试域名来测试正在开发的系统,比如"testapi.land.com"。当系统开发完成后,厂商如愿以偿的将安全的系统部署在域名"api.land.com"上,但是确忘记关闭了"testapi.land.com"。然后,测试域名上仍然开放着N多端口,分别对应着不同版本的Web系统,俨然成为了一个天然的靶场。0x02:微信公众号与APPWeb系统进不去?去看看厂家的微信公众号吧。为了迎合客户和流量,有点规模的企业都会建立自己的微信公众号,而且安全保护的受重视程度通常远低于Web系统。Web系统可能有复杂的图片验证码,而微信公众号可能为了用户体验,并没有设置任何图形验证码;Web系统难以发现的接口可能在浏览微信公众号时的数据包中找到;同理,如果厂家的封闭Web系统是面向多业务员的,那么很可能存在某一或几款APP,存在同样的登录功能,而且也比Web系统要疏于保护。缺少验证码或可能找到一些请求接口和一些有意思的请求参数。除此之外,反编译APP获得其源码,梳理代码中所有敏感的请求接口、连接地址、关键认证逻辑,可能会有意外收获。另外,测试完安卓机上的APP后,如果APP有IOS版本,测下IOS版的APP,说不定有意外收获。0x03:寻找蛛丝马迹最好详细的记录下所有有关Web系统的相关信息。这些信息都有可能成为最后突破的方向,如服务器操作系统类型、使用的框架或组件、使用的容器、使用的CMS类型、服务器版本、开发语言、前端框架等信息。这部分的工具实在太多了,挑拣自己顺手的用就好,比如Firefox插件wapplayer、whatweb、云悉,其它不再赘述。搞不定的web系统,说不定一个Struts2 RCE、Weblogic RCE、Tomcat war包部署之类的漏洞,连服务器的权限都拿到了。另外,对于信息量极少的封闭系统,右击查看源码基本成了必须要做的事,最好把能接触到网页,全部右击查看一遍网站源码。仔细浏览一遍,看看有没有特殊的网页注释、特殊链接之类的,也许一条测试后台的ip地址链接、放置在json文件中的明文配置密码信息,就能让你进入未受保护的测试系统。最后,如果系统条件允许的话,最好用检测普通Web系统的手段对封闭的Web系统检测一遍。比如用主机漏洞扫描器Nessus、web漏洞扫描器 AWVS、Netsparker、Appscan等扫描下网站,防止遗漏重要的Web漏洞信息。0x04:何方CMS如果Web系统不是作为独苗被单独开发的话,那么很可能是由已知的CMS或框架写成的。知名的CMS在 0x03:寻找蛛丝马迹步骤就应该已经知道了。如果它是由没有开放源代码的商业化的CMS改造而成或者不知名的系统建成,我们还有以下几种方式得到它的名字或者源代码。1. 观察页面的特殊css命名规则、js方法名等资源特征,用搜索引擎搜索; 2. 将有特点的页面比如登录页面,截图后利用在线试图,比对相似的系统,或者发到某群中,问下有经验的师傅; 3. 在搜索引擎、文库、Github、百度云盘和其它代码托管、云存储平台上,搜索目标的系统类型名,如"企业印鉴管理系统",同类系统不多的话,很容易就可以搜索出来;如果开发者没有安全意识,极有可能会把源码托管或分享在任何人都可以访问到的平台上,只要不遗漏此步骤,说不定就可以拿到源码; 4. 在页面底部或者扫描到的REAMDE等文件里如果有外包公司等名称或首页,可以借此得知是哪个外包公司开发的什么系统,寻找类似的保护较脆弱的系统,拿到源码。0x05:历史漏洞搜索经过我们上面的工作,我们很可能已经得知系统的名字和版本。这时候,就可以去搜索引擎、wooyun漏洞镜像站、安全客的漏洞搜索、cvel漏洞库去搜索下CMS的历史漏洞,或者厂商以前曾暴露出来的漏洞,可能会发现许多有用的信息!有可能一个以前暴露出来的员工弱口令稍加变形或者xxxCMS 无条件getshell,封闭系统的大门就彻底向我们敞开了。0x06:大杀四方从上文所述,我们可以看出:所谓旁敲侧击的精华思想有两部分,一是规避安全措施做的很好的封闭Web系统,尝试从相关的弱点系统和人着手,间接突破封闭的Web系统;二是通过各种渠道,获得所使用系统的名字和源码,尝试使用历史漏洞或者审计源码,突破封闭的Web系统。最后,老王也缓缓说出了他快速提交漏洞的秘密:原来在N月前,老王在某次渗透测试时,就通过其它网站的wwwroot.rar备份文件。获得了和这个Web系统一样的源码,审计一波已经得到几个0day,0day才是大杀四方的利器啊!三:总结当尝试突破封闭的Web系统并且正面强攻不奏效的情况下,旁敲侧击往往具有强大的杀伤力。其中的技巧往往越猥琐、小众、另辟蹊径,效果越出彩,而且技巧也远远不止上面提到的一小部分。比如,针对性极强的邮件、网页钓鱼套出目标管理员的口令和密码;在所有思路全部中断时,去QQ群搜索下Web系统名或者机构名,编织个巧妙的不敢轻易拒绝的谎言,进去QQ群后,很可能系统源码、默认密码、测试帐号就全部都有了。

更多 →

突破封闭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 ...

更多 →
<