漏洞挖掘

Laravel5.7反序列化RCE漏洞分析

坚强是说给别人听的谎言 提交于 2020-03-06 16:45:54
前言 以前只是粗略的知道反序列化漏洞的原理,最近在学习Laravel框架的时候正好想起以前收藏的一篇反序列化RCE漏洞,借此机会跟着学习一下POP链的挖掘 简介 Laravel是一个使用广泛并且优秀的PHP框架。这次挖掘的漏洞Laravel5.7版本,该漏洞需要对框架进行二次开发才能触发该漏洞 本地环境 Laravel5.7.28 Wamper64+PHP7.3.5(PHP >= 7.1.3) 环境准备 使用composer部署Laravel项目 创建一个名为laravel的Laravel项目 composer create-project laravel/laravel=5.7.* --prefer-dist ./ Laravel框架为单入口,入口文件为 {安装目录}/public/index.php ,使用apache部署后访问入口文件显示 Laravel欢迎界面 即安装成功(或者使用命令 php artisan serve 开启临时的开发环境的服务器进行访问) 配置路由以及控制器 Laravel所有的用户请求都由路由来进行控制。我们添加一条如下的路由 <?php use \ Illuminate \ Support \ Facades \ Route ; /* |---------------------------------------------------------

Linux 二进制漏洞挖掘入门系列之(五)UAF 漏洞分析与利用

微笑、不失礼 提交于 2020-03-05 22:49:42
0x10 UAF(Use After Free) 漏洞原理 这里,需要先介绍一下堆分配内存的原则。ptmalloc 是 glibc 的堆管理器,前身是 dlmalloc,Linux 中进程分配内存的两种方式: brk 和 mmap 。 当程序使用 malloc 申请内存的时候,如果小于 128K,使用 brk 方式,将数据段(.data)的最高地址指针_edata往高地址推;如果大于 128K,使用 mmap 方式,堆和栈之间找一块空闲内存分配 。同样的,当用户释放内存时, ptmalloc 也不会立马释放空间, 当应用程序调用 free() 释放内存时,如果内存块小于256kb,dlmalloc将内存块标记为空闲状态。 Use After Free 就是其字面所表达的意思,当一个内存块被释放之后再次被使用,可能会导致意想不到的后果。分为以下三种情况 1 内存块被释放后,其对应的指针被设置为 NULL , 然后再次使用,自然程序会崩溃。 内存块被释放后,其对应的指针没有被设置为 NULL ,然后在它下一次被使用之前,没有代码对这块内存块进行修改,那么程序很有可能可以正常运转。 内存块被释放后,其对应的指针没有被设置为 NULL,但是在它下一次使用之前,有代码对这块内存进行了修改,那么当程序再次使用这块内存时,就很有可能会出现奇怪的问题。 学过 C 语言的人应该都知道,垂悬指针

阿里安全资深专家杭特谈安全圈之“怪现状”

℡╲_俬逩灬. 提交于 2020-03-01 12:26:50
近年来,为了吸引更多的安全人才涌入,各企业和部门也为此做出了各种努力和尝试。比如举办各类的攻防比赛,破解表演……例如:XCTF、GEEKPWN、WCTF、XPWN等;比如开设挖掘漏洞的高额奖赏机制;比如提高安全人员的就业薪资待遇等。 在国家和企业的重视和关注下,我们看到越来越多优秀的技术人才涌出,信息安全已成为各高校中炙手可热的专业, 安全人才就业率也在逐年增加,各行各业的信息安全爱好者也投入其中,“挖掘漏洞”成了一件很“极客”,很有挑战并且很有成就感的事情。但渐渐的,我们也发现了安全圈的一个怪现象,那就是:“攻多防少”、“野战军远远大于正规军”、“安全人才结构不合理”。 在本次的采访中,阿里安全资深专家杭特就此问题阐述了自己的一些独特想法。 我有几张阿里云幸运券分享给你,用券购买或者升级阿里云相应产品会有特惠惊喜哦!把想要买的产品的幸运券都领走吧!快下手,马上就要抢光了。 杭特在安全行业从业十余年,本科数学专业出身的他,因纯粹的兴趣爱好,硕士攻读了计算机信息安全专业。毕业后曾在绿盟担任高级技术研究员,他说在刚入行的八年中,每天的主要工作就是深挖各种漏洞,漏洞越挖越多,但是被挖出漏洞后的软件安全性却没有得到提升,在这样的环境下感觉自己力量特别渺小,转身到了甲方公司-阿里巴巴。 杭特算是圈内对“攻、防角色”最有发言权的安全从业人员代表了,甲方和乙方公司的工作经历让他积攒了很多工作经验

网安入门-01信息收集

落爺英雄遲暮 提交于 2020-02-29 17:13:17
一、概述 1. 常见的一些信息收集目标:(如果测试合同不予限制) ① 组织架构,包括详细的组织结构图、部门架构图、团队组织图 ② 组织的基础设施信息,包括IP地址空间和网络拓扑 ③ 使用技术,包括硬件平台的软件的配置状态 ④ 员工电子邮件地址、手机号码 ⑤ 组织的合作伙伴 ⑥ 组织设施的物理位置 2. 网络安全网站:Freebuf.com Wooyun.org 3. PTES_Mindmap思维导图 二、利用搜索引擎收集信息 GoogleHacking:利用搜索引擎(Google、Baidu、Bing)有针对的搜索信息来进行网络入侵的技术和行为。 1. 主要目标: ① 敏感信息 ② 具备特殊URL关键字的目标地址 ③ 搜索已有的攻击结果 ④ 指定格式文件 ⑤ 其他与某个站点相关的信息 特别提示:利用搜索引擎的网页快照功能,有时候可以发现很多有价值的信息。 2. 常用GoogleHacking语法 ① intext:(仅针对Google有效) 把网页中的正文内容的某个字符作为搜索条件 ② intitle: 把网页标题中的某个字符作为搜索的条件 ③ cache 搜索搜索引擎里关于某些内容的缓存,可能会在过期内容中发现有价值的信息 ④ filetype 指定一个格式类型的文件作为搜索对象 ⑤ Inurl 搜索包含指定字符的URL ⑥ site 在指定站点搜索相关内容 3.

【代码审计】变量覆盖漏洞详解

余生颓废 提交于 2020-02-24 03:35:23
一、漏洞介绍 变量覆盖指的是用我们自定义的参数值替换程序原有的变量值,一般变量覆盖漏洞需要结合程序的其它功能来实现完整的攻击 二、漏洞函数 变量覆盖漏洞大多数由函数使用不当导致,经常引发变量覆盖漏洞的函数有:extract(),parse_str()和import_request_variables() 1、extract()   目前最常见的就是这个函数,使用频率最高,导致的漏洞也最多    extract ( array ,extract_rules,prefix) 参数 描述 array 必需。规定要使用的输入。 extract_rules (可选) extract() 函数将检查每个键名是否为合法的变量名,同时也检查和符号表中的变量名是否冲突。 对非法、数字和冲突的键名的处理将根据此参数决定。可以是以下值之一: 可能的值: EXTR_OVERWRITE - 默认。如果有冲突,则覆盖已有的变量。 EXTR_SKIP - 如果有冲突,不覆盖已有的变量。(忽略数组中同名的元素) EXTR_PREFIX_SAME - 如果有冲突,在变量名前加上前缀 prefix。自 PHP 4.0.5 起,这也包括了对数字索引的处理。 EXTR_PREFIX_ALL - 给所有变量名加上前缀 prefix(第三个参数)。 EXTR_PREFIX_INVALID - 仅在非法或数字变量名前加上前缀

Shodan在渗透测试及漏洞挖掘中的一些用法

旧时模样 提交于 2020-02-15 13:29:21
渗透测试中,第一阶段就是信息搜集,这一阶段完成的如何决定了你之后的进行是否顺利,是否更容易。而关于信息收集的文章网上也是有太多。今天我们来通过一些例子来讲解如何正确使用Shodan这一利器。 想要利用好这一利器,首先得知道他是什么,Shodan是一款网络空间搜索引擎,和我们常见的百度谷歌不同,他主要搜索的是存在于互联网中的设备,服务器、摄像头、工控设备、智能家居等,都是他的目标。Shodan不仅可以发现这些设备,并且可以识别出其版本,位置,端口,服务等一些信息,并且进行了一些相应分类。 Shodan分免费账户和会员账户,免费账户对一些标签的搜索和多标签关联搜索有限制,而会员的话就可以任意进行一些搜索,所以想要搜到自己想要的结果最好还是有一个会员比较方便,Shodan在每个黑色星期五的时候会进行打折(每年11月第四个周五),平时需要49美元的会员活动时只需要5美元,需要的小伙伴可以关注下。 一个系统的受攻击面越多,被入侵的风险也就越大,Shodan可以很好的帮你找到其他攻击面。下面开始正式来讲一下如何在平时的渗透测试中利用好Shodan,注意学习思考问题的方法,而不只是简单的搜索语句。 场景1:想搜索美国所有的ElasticSearch服务器 ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口

web常见源码泄露

孤者浪人 提交于 2020-02-08 18:24:20
前言:git,svn,hg等是代码控制系统,即开发人员在开发时使用可以提高开发效率的一种类似集成环境的系统。 转载大佬博文: 一、漏洞成因 在 WEB 安全体系当中,可能你对 SQL 注入,XSS 跨站一些漏洞已经耳熟于心了,而源码泄露问题对于大部分开发者来说就相对陌生了 , 而源码泄露导致的问题却并不少见,在过往的泄露案例当中,不仅是小网站有此问题,在一些大的厂商同样出现不少,并因此拿到 webshell。 比如在一些小型企业,可能公司并没有专门的服务器,而是把网站部署在某一个虚拟主机上面,代码文件比较多的时候 FTP 上传是比较慢的,于是开发者把代码先打包压缩后再上传,上传成功后再去服务器解压,这有虽然解决了上传速度慢的问题,不过却留下了一些安全隐患。 压缩包解压后如果没有删除,当攻击者发现后就可以把代码压缩包下载;因为部署到服务器上的都是源代码,这个时候攻击者就可以通过代码进一步挖掘一些安全漏洞:文件上传,SQL 注射等。 二、GIT 源码泄露 1. 漏洞成因 当在一个空目录执行 git init 时,Git 会创建一个 .git 目录。 这个目录包含所有的 Git 存储和操作的对象。 如果想备份或复制一个版本库,只需把这个目录拷贝至另一处就可以了。 该目录的结构如下所示: HEAD config* description hooks/ info/ objects/ refs

一文透析腾讯云云上攻防体系

偶尔善良 提交于 2020-02-01 04:01:11
近年来,网络安全问题变得愈发严峻,企业被黑客攻陷事件层出不穷,企业攻防犹如一道隔绝外界侵扰的屏障,一旦屏障被攻破,信息数据安全便失去保障。随着云计算浪潮到来,越来越多企业开始在云上探索新航线,期望解决应用数据量庞杂、服务器运维成本高、主机运行不稳定、配套资源待完善等问题,而云计算应用的热潮,也让云上安全成为新的命题。 攻防对抗: 云上安全的一道墙 进入云时代,企业与企业之间以及企业与用户之间的紧密程度逐步加强,单一存储载体已经无法满足现阶段对数据安全维度的需求,云上安全业务存在极大空缺,面对产业之间连接增强,云上安全危害也随之上升,与互联网时代不同,云时代面临的黑客攻击手段更为“巧妙”。 ● 计 划性攻击: 在攻击云上服务器之前,黑客有着针对性打法逻辑,对云上暴露出的漏洞进行阶段性攻击,防止被专业安全攻防团队定位追踪,从而使得攻击源头排查难度加大。 ● 规模化操作: 单个终端主机发起的主动攻击,已经难以对拥有绝对防护体系的云造成伤害,而灰产团队通过网络植入木马病毒等入侵大量个人设备,使之成为黑客“肉鸡”,以此规模化攻击云上主机,使得云上服务器流量过载而崩溃。 ● 爆发性伤害 : 由于在特殊节点涌入人群众多,对恶意访问的人排查难度大,黑客往往在这些时间节点发起爆发性伤害,从而击溃云上服务端。 在云计算时代,云上攻防能力成为对抗黑客有效手段之一。 无论是云上企业还是云服务商

【转帖】申请CVE的姿势总结

房东的猫 提交于 2020-01-25 00:38:04
申请CVE的姿势总结 https://www.freebuf.com/articles/web/224609.html 什么是CVE? CVE的全称叫做“Common Vulnerabilities & Exposures”中文含义是公共漏洞和暴露。它作为披露漏洞的平台,受到国内外关注。CVE会提供编号作为漏洞对应的字符串式特征,有很多企业倾向于用多少高质量的CVE来证明实力,一些工具和产品也会使用CVE作为漏洞的官方标识。一些企业关注漏洞使用CVE作为修补漏洞的索引依据。 如何去提交CVE? 目前经过总结提炼出来多种申请CVE的方法,每种方法都有利弊,请自行选择。大体上分为两种,公开披露和向CNA成员中问题厂商报告,如果需要披露漏洞请收藏。 申请披露流程 1、公开披露漏洞 -> 提交CVE申请 -> 邮件反馈申请结果 操作流程:CVE官方网站 -> Request CVE IDs(申请CVE ID) -> MITRE CVE Request web form(通过web表单提交) -> 填写表单(如果英文不佳建议使用网页谷歌翻译或者参考之前的文章) -> 等待CVE回复邮件 -> 邮件回复中带有CVE编号 2、邮件CNA中企业 -> 企业确认和修复 -> 企业申请CVE和发布漏洞补丁 操作流程:CVE官方网站 -> Request CVE IDs(申请CVE ID) ->

SRC漏洞挖掘

♀尐吖头ヾ 提交于 2020-01-24 09:52:55
SRC目标搜集 文章类的平台 https://www.anquanke.com/src 百度搜索 首先得知道SRC厂商的关键字,利用脚本搜集一波。 比如【应急响应中心】就可以作为一个关键字。通过搜索引擎搜索一波,去重,入库。 # -*- coding:utf-8 -*- ''' 从百度把前10页的搜索到的url爬取保存 ''' import multiprocessing # 利用pool进程池实现多进程并行 # from threading import Thread 多线程 import time from bs4 import BeautifulSoup # 处理抓到的页面 import sys import requests import importlib importlib.reload(sys) # 编码转换,python3默认utf-8,一般不用加 from urllib import request import urllib ''' all = open('D:\\111\\test.txt', 'a') all.seek(0) #文件标记到初始位置 all.truncate() #清空文件 ''' headers = { 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q