漏洞

Winamp栈溢出漏洞研究【转载】

两盒软妹~` 提交于 2019-11-29 02:27:17
课程简介 Winamp 是一款非常经典的音乐播放软件,它于上世纪九十年代后期问世。与现在音乐播放软件行业百家争鸣的情况不同,当时可以说 Winamp 就是听音乐的唯一选择了,相信那个时代的电脑玩家是深有体会的。而时至今日,依然有一批忠实的 Winamp 粉丝还在坚守着这块阵地,这也就说明了这款播放器依旧是有很强的生命力。 但是,这款软件的漏洞也是挺多的,五花八门,涵盖了很多方面。而我们这次所讨论的就是这款软件在读取 whatsnew.txt ,也就是更新历史文件时出现的缓冲区溢出漏洞。 课程介绍 实验环境: 操作机: Windows XP 实验工具: Tools Path WinHex C:\Tools\WinHex OllyICE C:\Tools\OllyICE 实验文件: Winamp ShellCode.c 学习将自己的 ShellCode 植入 POC 文件中。 实验步骤 ​ ​ 第一步 下载实验工具 请访问 http://tools.ichunqiu.com/62105285 下载 实验文件 。 小 i 提示 : 在本次实验中 , 请注意实验工具、实验文件存放路径 , 不同的文件路径可能会出现不一样的实 验结果。 在实验环境中无法连接互联网,请使用您本地的网络环境。 快速查找实验工具 打开桌面 Everything 搜索工具,输入实验工具名称,右击选择“打开路径”

文件上传漏洞(File Upload)

北战南征 提交于 2019-11-29 02:19:37
简介 File Upload,即文件上传漏洞,通常是由于对用户上传文件的类型、内容没有进行严格的过滤、检查,使得攻击者可以通过上传木马,病毒,恶意脚本等获取服务器的webshell权限,并进而攻击控制服务器,因此文件上传漏洞带来的危害常常是毁灭性的。简单点说,就是用户直接或者通过各种绕过方式将webshell上传到服务器中进而执行利用。例如,如果你的服务器为php环境,用户上传了一个php一句话木马,并通过菜刀连接获取webshell,就可能对你的服务器文件进行篡改甚至执行命令。 文件上传校验方法 客户端javascript校验(一般只校验后缀名) 当客户端选择文件点击上传的时候,客户端还没有向服务器发送任何消息,前端的 js 脚本就对文件的扩展名进行检测来判断是否是可以上传的类型 服务端校验 文件头content-type字段校验 后端通过对上传文件的MIME类型进行黑白名单检测过滤 文件内容头校验 不同的文件都有不同的文件头,文件头就是为了描述一个文件的一些重要的属性,它告诉了打开并处理该文件的程序这些属性。有些上传接口会检测你上传的文件头信息以此来判断是否为正真的文件类型,比如 jpg 格式图片头部是 JFIF ,gif头部是GIF89a,png头部是%PNG。 校验文件大小 一些上传接口通过函数比如 getimagesize()

XSS漏洞原理

坚强是说给别人听的谎言 提交于 2019-11-29 02:18:27
注入型漏洞的本质都是服务端分不清用户输入的内容是数据还是指令代码,从而造成用户输入恶意代码传到服务端执行。 00x01js 执行 Js是浏览器执行的前端语言,用户在存在xss漏洞的站点url后者能输入数据的部分插入js语言,服务器接收到此数据,认为是js代码,从而返回的时候执行。因此,攻击者可利用这个漏洞对站点插入任意js代码进行窃取用户的信息。 00x02 xss 攻击 XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如 同源策略 (same origin policy)。这种类型的漏洞由于被黑客用来编写危害性更大的 网络钓鱼 (Phishing)攻击而变得广为人知。 对于 跨站脚本攻击 ,黑客界共识是:跨站脚本攻击是新型的“ 缓冲区溢出攻击 “,而JavaScript是新型的“ShellCode”。 00x03 XSS 攻击的危害 1、盗取各类用户 帐号 ,如机器登录帐号、用户网银帐号、各类管理员帐号 2、控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力 3、盗窃企业重要的具有商业价值的资料 4、非法转账 5、强制发送电子邮件 6、网站挂马 7、控制受害者机器向其它网站发起攻击(重定向语句) 8

DVWA之命令执行

微笑、不失礼 提交于 2019-11-29 01:03:33
一、命令执行漏洞 命令执行漏洞是指可以随意执行系统命令,属于高危漏洞之一,也属与代码执行范围内,好比说一句话木马<?php@eval($_POST['cmd']);?> 二、分类: 1.代买过滤不严或无过滤 2.系统漏洞造成的命令执行, bash破壳漏洞,该漏洞可以构造环境变量的值来执行具有攻击力的脚本代码,会应县到bash交互的多种应用,例如http,ssh,dhcp 3.调用第三方组件,例如php(system(),shell_exec(),exec(),eval()), java(structs2),thinkphp(老牌的php框架) &&和&和| && command && command2 第一个命令执行成功才会执行第二个命令 & command & command2 不管第一个命令是否执行成功都要执行第二个 | command | command2 如果第一个命令出错,则不执行后面的,如果第一个命令正确,则执行第二个命令,类似于管道符, 三、演示 1、low(1)&& 第一个命令执行成功才会执行第二个命令 否则不能继续执行 (2)& 即使第一个command1没有执行成功,也会执行command2 执行成功则都执行 (3) | 不管command1是否执行成功,都执行command2,不返回command1的结果 2、medium 设置DWVA Security等级

PHP反序列化漏洞

两盒软妹~` 提交于 2019-11-28 22:09:59
【序列化简单利用】    serialize() 序列化:使用函数serialize()可将实例序列化为字符串   unserialize() 反序列化:使用函数unserialize()可将序列化的字符串还原 代码示例: <?php class Example { var $var = ''; function __destruct() { eval($this->var); } } unserialize($_GET['code']); ?> 漏洞利用: 构造漏洞利用的代码,保存为test.php,获取序列化值为 O:7:"Example":1:{s:3:"var";s:10:"phpinfo();";} <?php class Example { var $var = 'phpinfo();'; function __destruct() { eval($this->var); } } $a=new Example(); echo serialize($a); ?> 提交?code=O:7:"Example":1:{s:3:"var";s:10:"phpinfo();";} 即可执行phpinfo() 【PHP SESSION反序列化】 主要原因是: ini_set(‘session.serialize_handler’, ‘php_serialize’);       

PHP反序列化漏洞

浪尽此生 提交于 2019-11-28 22:09:49
聊一聊PHP反序列化漏洞 2016年11月4日 反序列化漏洞在各种语言中都较为常见,下面就简单聊一聊PHP的反序列化漏洞(PHP对象注入)。第一次了解这个洞还是在某次ctf上,就简单记录下个人理解以及对CVE-2016-7124的简单分析。 序列化与反序列化 php允许保存一个对象方便以后重用,这个过程被称为序列化,序列化一个对象将会保存对象的所有变量,但是不会保存对象的方法,只会保存类的名字。先看一眼具体什么样子 name . '\'s phone is ' . $this->phone; } } $usr = new info(); $usr->printdata(); echo serialize($usr); ?> 此时输出 church's phone is 111111 O:4:"info":2:{s:4:"name";s:6:"church";s:5:"phone";s:6:"111111";} 可以看到其中没有任何跟类有关的东西,只有其中的数据被数据化。 O:4:"info":2:{s:4:"name";s:6:"church";s:5:"phone";s:6:"111111";} O:4:"info":2: 参数类型为对象(object),数组(array)为a。类名为info,有两个变量(参数 s:4:"name";s:6:"church"; s

Java反序列化漏洞研究

£可爱£侵袭症+ 提交于 2019-11-28 22:08:44
Java 反序列化漏洞研究 漏洞原理 java序列化就是把对象转换成字节流,便于保存在内存、文件、数据库中;反序列化即逆过程,由字节流还原成对象。当反序列化的输入来源于程序外部,可以被用户控制,恶意用户便可以构造恶意的字节流,经反序列化之后得到精心构造的恶意对象。 也就是说一些java应用的数据在网络中传输,我们把里面的序列化数据抠出来,替换成我们的payload,应用程序接收之后把payload进行反序列化,构造的恶意功能(如命令执行)就被执行了。 实际过程中直接忽略PCA的存在,hacker先于PCB完成一些前期的交互。 那么问题来了,如何构造能执行任意命令的payload?需要依赖于什么条件? 哪些应用会在网络中传输序列化的数据?这些数据有什么特征? 序列化与反序列化原理 上述代码说明了反序列化的过程,Java中通过 writeObject() 函数对对象进行序列化,将有结构的数据转换成为无结构的二进制串。 通过 readObject() 函数将二进制串反序列化还原成对象。 执行到12行时生成了一个String类型的对象。 执行到16行已经将序列化数据写入到object.db中了,前面的四个字节AC ED 00 05开头,后面会经常用到。 执行到24行,完成反序列化过程,将对象还原,此时对象id不同,其他均相同。 构造执行任意命令的payload

thinkphp5远程代码执行漏洞分析(二)

℡╲_俬逩灬. 提交于 2019-11-28 19:01:23
payload url => http://127.0.0.1/thinkphp_5.0.10_full/public/index.php?s=index/index/index post => s=whoami&method=&filter[]=system&_method=__construct 版本:5.0.8~5.0.12 漏洞解析 开始前为了方便大家理解,先大致描述一下被触发的过程。原因在于Request.php文件中reqeust类的属性可控导致自定义filter过滤器可控,而filter又用于过滤用户传入的危害变量,可控的变量被传入了可控的filter中导致漏洞的形成。 从漏洞形成的地方反向跟踪payload的传入过程研究漏洞形成的原因: 首先在request.php的1060行下断点 分析堆栈 可以发现有危害的filter在request.php的1000行的getFilter方法中形成 跟踪进getFilter()方法,过滤器直接由request类的属性filter赋值了 那么$this->filter的属性是什么时候被我们改变的呢,继续在堆栈间查看变量的改变,可以发现属性在App::run()方法调用后和$request->param()方法调用前就已经被改变了。 继续在这两个方法之间一步步的调试,查看filter属性在何处被修改,最后定位到了Route

thinkphp5远程代码执行漏洞分析(一)

我只是一个虾纸丫 提交于 2019-11-28 19:01:23
payload 测试版本thinkphp5.1beta url => http://127.0.0.1/thinkphp5.1beta/public/index.php?s=index/\think\Container/invokefunction&function=call_user_func&vars[0]=phpinfo&vars[1]=1 漏洞分析 查阅了网上的分析资料,直接定位到漏洞形成的直接代码Module.php 第124行: 传入的参数在124行生成了think\container类中的invokefunciton方法,该方法会生成一个函数并调用。 而传入参数$vars为我们get中传入的内容。反向跟踪$call和$vars变量 在108行以$instance实例作为元素。继续反向查看,可以发现在第93行被实例化。 深入查看$this->app->controller。thinkphp5.1beta\thinkphp\library\think\App.php第463行 当检测到路由信息中有\后调用$this->request->module()方法,该方法会先判断该类是否存在,存在的话生成该类实例 其中$controller从参数中提取出来的。 分析堆栈,url.php第26行 可以看到

一次完整的渗透测试流程

泪湿孤枕 提交于 2019-11-28 18:48:46
目录 渗透测试 信息收集 漏洞探测 漏洞利用 内网转发 内网渗透 痕迹清除 撰写渗透测试保告 渗透测试 渗透测试就是利用我们所掌握的渗透知识,对网站进行一步一步的渗透,发现其中存在的漏洞和隐藏的风险,然后撰写一篇测试报告,提供给我们的客户。客户根据我们撰写的测试报告,对网站进行漏洞修补,以防止黑客的入侵! 渗透测试的前提是我们得经过用户的授权,才可以对网站进行渗透。如果我们没有经过客户的授权而对一个网站进行渗透测试的话,这是违法的。去年的6.1日我国颁布了《网络安全法》,对网络犯罪有了法律约束,不懂的移步——> 网络安全法 渗透测试分为 白盒测试 和 黑盒测试 白盒测试就是在知道目标网站源码和其他一些信息的情况下对其进行渗透,有点类似于代码分析 黑盒测试就是只告诉我们这个网站的url,其他什么都不告诉,然后让你去渗透,模拟黑客对网站的渗透 我们现在就模拟黑客对一个网站进行渗透测试,这属于黑盒测试,我们只知道该网站的URL,其他什么的信息都不知道。 接下来,我就给大家分享下黑盒渗透测试的流程和思路! 当我们确定好了一个目标进行渗透之后,第一步该做的是什么呢? 信息收集 第一步做的就是信息收集,正所谓知己知彼百战百胜,我们根据网站URL可以查出一系列关于该网站的信息。通过URL我们可以查到该网站的IP、该网站操作系统、脚本语言、在该服务器上是否还有其他网站等等一些列的信息