自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 问答 (7)
  • 收藏
  • 关注

原创 CVE-2020-0769逆向分析

受影响版本:系统 版本Microsoft Windows 10 Windows 10 1607Windows 10 1709Windows 10 1803Windows 10 1809Windows 10 1903Windows 10 1909Windows 7 SP1 Windows 8.1 Windows RT 8.1 Windows Server 2008 SP2Windows Server 2008 R2 SP1Windows Server 2012Windows Se

2021-09-13 16:00:59 650

原创 CVE-2020-16898逆向分析

CVE-2020-16898漏洞是一个典型的栈溢出漏洞,此漏洞由于出现在内核层所以最有可能造成的便是系统蓝屏宕机,也不排除利用栈溢出造成任意代码执行,但由于系统自身带有的___security_cookie安全机制,造成代码执行的可能不大。受影响的版本:windows_10 : 1709/1803/1903/1909/2004window_server_2019 : *window_server : 1903/1909/2004官方安全更新:Microsoft360cert使用IDA Pro

2021-09-13 16:00:14 1408 3

原创 CVE-2020-17087逆向分析

文章写了很久今天才发现一直是草稿状态。。。。----------------------------------分割线---------------------------------------漏洞逆向分析17087是一个位于Cng.sys内核中的一个整形溢出漏洞,此内核主要用于各种加密算法以及其Key的管理,此内核暴露了大量的ioctl code供应用层程序调用,用我写了一半的fuzz工具(一直划水,开发进度缓慢目前也就只能做做ioctl code探测了…)探测一下哪些ioctl可用,这些ioct

2021-03-08 15:44:57 765

原创 win10_x64下shellcode提权工具(SYSTEM权限)

之前写过一篇远线程注入与一篇shellcode编写的文章:Win10_X64远线程注入dll(非CreateRemoteThread)Windows 10_X64环境shellcode编写上一次是通过远线程注入,将指定的dll模块加载进我们指定的进程,这一次将我们写好的shellcode注入进指定的进程,从而执行任意代码。首先我们要清楚如何获取一个具有system权限的cmd,想要获取一个具有system权限的cmd,首先这个cmd得是一个具有system权限进程的子进程,windows下具有sys

2020-11-22 18:08:39 3519 1

原创 Windows 10_X64环境shellcode编写

环境windows 10_x64windbg_x64x64dbgnasm适用于 VS 2017 的 x64 本机工具命令提示(安装visual studio会自带)redasmshellcodeshellcode是一段用于利用软件漏洞而执行的代码,shellcode为16进制的机器码,因为经常让攻击者获得shell而得名。shellcode常常使用机器语言/汇编编写。 可在暂存器eip溢出后,塞入一段可让CPU执行的shellcode机器码,让电脑可以执行攻击者的任意指令。虽然现在的操

2020-11-20 22:46:42 2099 1

原创 对TP-Link SR20 tddp协议漏洞的详细逆向研究

最近段时间一直忙于找工作,从而导致博客许久没有好好的写一篇(好不容易要写了结果csdn的linux下网页登陆又出bug,只能把截图放到windows下,好不容易图都截完了转存截切,结果打开时所有图片格式又损坏了,又重新去linux截,真可谓是…一波三折),导致这段时间学到的很多知识没能记下来,罪过罪过…正题从一开始研究IOT安全开始就了解到过一个关于TP-Link SR20的固件漏洞,也复现利用过这个漏洞,但对这个漏洞的产生的具体细节了解甚微,今天就用IDA来逆向分析一下这个漏洞,关于TP-Link S

2020-07-27 01:38:12 2044

原创 Android studio+opencv-4.1.0 开发环境搭建(一)

最近在做一图像处理APP的时候需要用到opencv,发现从配置个方面都十分蛋疼,好在经过一番折腾,算是大概i弄出来了,在这里大概说说,我用的是android studio开发环境,具体安装配置不再多说,直接从opencv开始。opencv下载opencv官网先去官网下载,我在这里选择了目前的最新版4.1版,选择下载android版本的下载好后,直接解压,不需要安装之类的步骤,进入解压后的...

2019-05-24 14:58:02 26754 15

原创 python scapy实现ARP欺骗与DNS欺骗

关于ARPARP协议(地址解析协议),是一个能够将IP地址转换为MAC地址来让设备间通讯的协议,由于设备间进行网络通讯时,需要将网络层IP数据包包头中的IP地址信息解析出目标硬件(MAC地址)信息来保证通信的顺利进行,所以就有了ARP协议的存在,可在windows下的cmd中输入指令arp -a来查看本机arp缓存。在后面我会用两台电脑做测试,一台是linux系统为模拟黑客的设备,另一台是win...

2019-03-27 22:27:55 5256

转载 python使用UDP协议进行远程桌面共享

之前在写远程桌面共享的时候一直没有思路,直到搜到了这篇文章:python实现基于UDP的视频直播程序对我启发很大,但还有两个问题:1.画质太低,导致连桌面上的文字都难辨认2.存在色变,画面崩坏解决办法...

2019-03-12 13:12:43 6442

原创 Kali Linux简单的网络嗅探实验

目的:利用ettercap和httpry以及nriftnet获取同一局域网内联网用户的http流量包,网页浏览时的网页图片。使用工具:ettercap(用ettercap -G可打开UI界面)httpry(kali默认没有安装,可用apt-get install httpry安装)nriftnet(获取图片会有延时,需要耐心等待)过程:ettercap -G打开ettercap的...

2019-03-11 23:41:51 5283

原创 cve-2023-3079漏洞与patch分析

时由于COW(写入时拷贝)的原因当在具体向arguments对象elelments写入内容时会将elements中的内容完整的拷贝到一块新的elements中并将要写入的内容写入。列表中的每一个map与handler,并且会根据当前map是否具有过渡map来进入不同分支,此处列表中的两个map都不存在过渡,所以会直接去执行。时会与前一个处理过的arguments对象相同,由于receiver与key都不同所以将会触发miss分支,并调用。函数,由于第一次触发IC所有会进入miss分支,此分支会进入。

2023-08-22 10:07:18 756

原创 Chrome漏洞分析与利用(十三)——issue-1182647(CVE 2021-21195)漏洞分析

由于调用了gc函数,所以在使用d8执行时需要加上–expose-gc 参数,执行后。

2022-11-25 11:40:58 659 2

原创 Chrome代码分析(二)——EscapeAnalysisPhase

本阶段最主要的功能就是检查对象是否为逃逸,将逃逸对象保留的同时将未逃逸的对象删除,除此之外此阶段还会将一些不必要的节点简化或替换为其他节点。

2022-11-14 14:57:17 520

原创 Chrome代码分析(一)——Node对象结构

Node结构.....use与edge

2022-11-02 10:21:18 929 1

原创 Chrome漏洞分析与利用(十二)——issue 1315901(CVE-2022-1364)

本以为指向同一块element的FixedArray是在getThis中生成的,但在getThis函数的执行逻辑中并未找到,再结合patch与类似的漏洞cve 2021-21195的漏洞分析,最后发现FixedArray是在OptimizedFrame::Summarize函数中生成的,该函数在创建JSError对象过程中被调用会打包产生错误的函数及其相关对象数据。通过查看POC代码会发现e1,e2中的C,M对象都是是通过C函数获取到的,C函数中通过。

2022-10-20 17:47:21 1163

原创 Chrome漏洞分析与利用(九)——issue 1296150(cve 2022-0609)

issue 1296150(CVE 202-0609)由于此漏洞在chromium release版本下触发失败,通过查看issue页面发现崩溃产生于DCHECK(),故尝试编译debug版进行漏洞调试安装vs,勾选以下组件其余默认,vs最好安装在默认路径否则在编译时可能出现问题,具体问题及解决办法查看v8编译。然后设置好环境变量使用以下方法获取指定版本chromium的源码再使用以下方法同步源码并同时执行runhooks使用以下方法清理目录最后执行以下内容打开编译配置文件在编译配置

2022-07-08 15:37:41 1626

原创 Chrome漏洞分析与利用(三)——Issue-1062091漏洞分析

漏洞环境漏洞说明Issue-1062091为chrom中存在的一个UAF漏洞,此漏洞存在于chromium的Mojo框架中,利用此漏洞可以导致chrome与基于chromium的浏览器沙箱逃逸。这个漏洞是在Chrome 81.0.4041.0的提交中引入的。在几周后,这个提交中的漏洞恰好移动到了实验版本命令行标志的后面。但是,这个更改位于Chrome 82.0.4065.0版本中,因此该漏洞在Chrome稳定版本81的所有桌面平台上都是可以利用的。环境配置一开始打算像调试v8漏洞那样尝试用fetc

2022-04-12 09:44:51 1130

原创 Chrome漏洞分析与利用(一)——Windows V8漏洞环境编译

Windows V8漏洞环境编译工具:ninja: ninja git地址depot-tools: depot-tools git地址vs2019: 官网下载,使用默认安装路径,否则在用v8gen.py时会因为路径问题导致失败,如果非要使用自定义路径,则需要去改v8源码目录中的vs_toolchain.py脚本,其中有一行代码path = os.path.expandvars('%ProgramFiles(x86)%' + '/Microsoft Visual Studio/%s' % versi

2022-02-16 14:40:42 1344

原创 IDA Pro使用学习研究笔记(一)——IDA View

IDA Pro一直在学习二进制漏洞挖掘,但是从来没有写过有关分析工具笔记。。。。IDA Pro一个二进制逆向分析工具,可以用来对未知源码的二进制程序,进行静态分析,简单来讲就是不去运行二进制程序,将其指令段的二进制机器码还原成汇编指令来对程序的执行流与代码逻辑进行分析。与其相对的还有一种是动态分析,最具代表性的工具就是Windbg、ollydbg、X64dbg,他们在还原汇编代码的同时还会去运行程序,并且还可以还原程序执行时的堆栈以及其他的一些运行时产生的内存数据(这是静态分析所没有的优点)。启动ID

2021-04-12 03:54:34 2367

原创 x64 ArchLinux栈溢出实验

栈只要对编程有一定了解的同鞋应该都知道这个词,就拿C/CPP来说,在一个程序中他所有的局部变量与函数参数都是存在栈区里的比如int fun(int i){ int a=0; return a;}在这个简单的程序里变量i与变量a都存放在函数fun的栈区内还有一种情况int b =9;int fun(int i){ int a=0; return a;}在这里也还是只有变量i与变量a存放在函数fun的栈区内,而变量b是全局变量不在函数fun的栈区内。说道函数栈就得说说栈帧,栈

2020-10-21 12:47:34 369 1

原创 浅谈C/C++函数指针与异步回调机制

函数指针与指针函数先来看两种声明:int* fun(int i);int (*fun)(int i);首先明确,前者为指针函数,后者为函数指针,他们的区别就在于:一个返回值类型为int型指针的函数一个指向返回值类型为int的函数的指针也就是说函数指针可以将函数变成一个类似与变量的东西供我们操作两者的用法实例:1.#include<stdio.h>#include<stdlib.h>int* fun(int i){ return ((int*)ma

2020-10-08 00:44:11 2667

原创 ArchLinux基本安装

在开机bois里设定UEFI启动否则U盘将无法引导或无法进入命令行,不同机器方法不一,根据自己的机器型号自行百度。连接网络,并测试网络通短vim或vi打开/etc/pacman.d/mirrorlist文件使用gg后再使用dG清空内容并添加国内源,格式:Server = https://…我这里用了清华源,添加完成后使用pacman -Syy刷新fdisk -l查看磁盘状况以及要将系统安装的那个盘,我这里是sda,sdb为我的装机U盘使用mkfs.ext4 /dev/sda吧sda格式化一下,然

2020-10-06 13:45:58 820 1

原创 Win10_X64远线程注入dll(非CreateRemoteThread)

谈到远线程注入,首先肯定会想到使用CreateRemoteThread,但这个API无法对系统进程进行注入,而且根据我个人的验证发现这个函数在win10下也无法正常将dll注入进记事本进程(淦!)。好在在我的不懈努力的百度、google下发现了另一种思路,那就是使用ZwCreateThread这个内核API,CreateRemoteThread在底层也调用了这个API,CreateRemoteThread底层会调用内核函数ZwCreateThreadEx,而系统调用此函数时,如果发现是系统进程,会把函数的第

2020-09-27 23:42:51 3135

原创 D-Link DIR850L-A1固件指令执行漏洞

不知道为什么D-Link的固件漏洞真的是…很多。这次新整活还是整D-Link,首先还是老规矩,官网下载bin固件官网下载FTP下载下载解压后会得到一个名为DIR850LA1_FW114b07WW.bin的二进制文件,用binwalk将其导出目录。sudo binwalk -e ./DIR850LA1_FW114b07WW.bin可以看到文件系统是squashfs文件系统然后进入到处目录再进入squashfs-root目录,可以看出到一个与linux近乎一致的目录结构然后进入htdocs

2020-08-12 10:59:08 1615

原创 D-Link DIR878路由器固件命令执行漏洞

经过之前几篇的漏洞挖掘练习,对于普通linux内核与VxWorks内核的固件漏洞进行了分析,这次来分析一下被加密过的固件漏洞。以D-Link DIR878为例,此路由器的固件从1.04版之后开始对之后的版本固件进行加密,而解密程序就在最后一个不加密的版本固件里也就是1.04版,所以这次我们需要先下载两个版本的固件,固件下载地址:D-Link。关于固件加解密可参考D-Link DIR-882 路由器加密固件的解密 在下载固件时可能会找不到1.04版本的,直接找1.10版本的即可这两个版本在一起。..

2020-07-31 00:15:55 2092 1

原创 施耐德PLC以太网模块固件NOE77101后门账户漏洞

老规矩,首先在官网下载NOE77101固件,要说明NOE77101固件与之前分析的TP-Link SR20固件有着很大的差别,SR20固件使用了linux内核,而NOE77101则使用了VxWorks内核,前者是家用路由器固件,后者是施耐德PLC以太网模块固件。下载好后解压,在./FLASH0/wwwroot/conf/exec目录下会有一个NOE77101.bin文件使用binwalk分析并导出目录,进入_NOE77101.bin.extracted目录,可以看到217、217.zlib两个文件,在

2020-07-28 23:19:59 2184

原创 linux密码忘记解决办法

在使用linux系统的过程中,有时候可能会因为长时间的不使用从而导致root密码忘记等类似情况,实际上这种情况可以通过在grub中使用单用户模式更改root密码。首先启动计算机,在引导界面可以看到在这里选择高级选项选中recovery mode按e开始编辑,找到ro recovery nomodetest这句将其改为rw single init=/bin/sh然后使用ctrl+x组合键重新引导然后等待等到#号出现,我们就可以使用一些基本的常用指令然后我们使用passwd root指令来更改r

2020-07-24 16:25:39 162

原创 Hibernate入门基础(三)

关键类在写好两个xml文件后,我们的代码通常会以如下形式来进行编写//配置对象Configuration cfg=new Configuration().configure();//事物对象Transaction tx=null;//持久化对象CUserInfo ci=null;//session工厂SessionFactory sessionFactory=null;//session对象Session databaseSession=null;try{ sessionFact

2020-05-21 00:55:12 136

原创 SHA-1算法解释与C/C++实现

SHA-1与MD5算法一样,也属于是一种哈希算法,并非是密码算法,也是因为其不可逆性,导致其在密码界常有应用,他与MD5的区别:输出定长为20字节安全强度更强算法计算过程略有不同算法实现过程与其他哈希算法一样,首先肯定是对原文数据进行填充,输入不定长度的原文,要使其长度满足: “长度 mod 512bit =448bit”不管其长度是否满足,都要在其后至少添加一个十进制数128即0x80,其二进制形式为1000 0000,如果长度不满足就在添加完0x80后继续填充0,一致填充到满足"长度

2020-05-18 13:34:22 2031

原创 dll劫持代码演示

DLL文件在说dll劫持之前,我觉得有必要先说明一下dll文件的用途,dll文件是windows下的动态链接库文件,通常情况下,我们的应用程序并不是将所有的代码内容都生成为一个exe可执行文件的,开发者会将部分内容编译打包成一个后缀为.dll的库文件,这样做就我所知有三大好处:应用程序本体体积会很小。不同程序间可共享一个库文件。可以增强程序的可扩展性。介于这些好处,微软本身也是鼓励动态库文件的使用,当然,他也有一个缺点,那就是每次发布程序,都要讲这些dll文件打包与应用程序放在同一目录下发布,

2020-05-14 18:55:28 1179

原创 MD5算法解释及C/C++实现

关于MD5MD5是由Ronald Linn Rivest设计,于1992年公开,用以取代MD4算法的一种散列算法,首先要明确的是,他本身并非是一种加密算法,但因为其不可逆性,导致在密码界也常有应用,因为不可逆性,曾一度被认为是一种比较安全的算法,但据说被我天朝山东大学的一位女教授给破解了,只用几个小时就可以将其碰撞(就是用不同的明文算出相同的密文,姑且这样形容…),所以就目前而言,已经不再是一种百分之百安全的算法了(跟md5出自同宗的SHA-1算法据说也被谷歌给破了…)算法过程MD5算法的过程,总体简

2020-05-12 00:58:02 813

原创 快速排序C代码实现(非递归)

1

2020-05-07 01:10:52 1570

原创 RSA加密算法解释与C++实现

最近因为一些原因对密码学产生了点兴趣,继之前用代码实现BASE64之后最近又搞起了RSA,这让我这个数学渣用从头开始学数学。。。。泪RSA加密算法RSA加密算法是由三位MIT大佬发现的,故RSA算法名称由来就是取他们三位名字i的首字母。RSA算法是一种典型的不对称加密算法,说到不对称加密就会想到对称加密,在密码学加密算法大致可分为两种:对称加密与不对称加密。对称加密什么是对称加密,简单来...

2020-05-03 22:00:03 5934 3

原创 快速排序C语言

快速排序,就像他的名字,相对而言十分快速,时间复杂度较低,所以在对程序运行时间有一定要求的场合可以选择快速排序来进行数据的排序快速排序首先在步骤上分为:首先选取一个基准数,直接取首元素即可对于从左往右降序排序,将比基准数小的数放到基准数左边,比基准数大的放到右边,如果一个在右边的数比基准数大,那就放着不动,继续向左比较,直到找到一个比基准数小的数,然后放到基准数左边,然后开始比较左边,左边...

2020-03-29 12:10:07 2491

原创 C++ 实现Base64编码

Base64编码是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法,Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。采用Base64编码具有不可读性,需要解码后才能阅读。编码实现过程想要实现对字符串的base64编码,首先肯定要知道它的编码过程,在进行编码前首先要设置码表const u_ch...

2020-03-25 19:11:08 3134

原创 C++实现PE文件添加新节区(加壳器)

最近潜心研究二进制安全,接触到了shellcode还有加壳脱壳有关的内容,于是心血来潮,想用自己不怎么成熟的编程功夫来实现写一个加壳器,并记录下代码编写过程中遇到的坑。(以下文章中区段==节区)PE文件格式pe(Portable Executable)其实就是在windows系统上的程序文件,这种文件格式在windows系列操作系统上基本上是通用的,我们平时见到的.exe、.dll、.obj...

2020-03-21 17:38:45 2624 6

原创 栈帧详解

栈帧作用栈帧在程序中负责保存程序的局部变量、参数与函数最终执行完后的返回地址。我们在写C语言代码时经常会接触到的一个概念“局部变量”就是由栈帧来负责保存维护的。栈从数据结构上来说,是一种先进后出的数据接管,可以把他想象成一个水桶,要存入的数据就是一个个的盘子,现在将盘子按顺序一个一个放入桶中,当要用到盘子要取出盘子的时候,最后一个放入的盘子肯定第一个被取出,第一个放入的盘子肯定最后一个被取出...

2020-03-12 18:42:53 1324

原创 利用arduino制作BadUSB

BadUSBBadUSB是由arsten Nohl和Jakob Lell共同发现,并在2014年的BlackHat安全大会上公布。早期的U盘病毒是在正常的U盘中存入一个autorun.inf可以自启动程序的小脚本,来自动运行某些程序,以此来达到木马入侵或者病毒攻击的效果,但毕竟时代在进步,如此简单的攻击方法自然很容易就会被各种杀软以及系统自带的防御系统识别kill掉,而且后来微软也发现了这个安全...

2020-03-11 23:53:54 3363 1

原创 记一次完整的内网DNS欺骗实验,附带搭建https服务器环境

在前几个月,我写了一片关于Python实现内网DNS+ARP欺骗的帖子,当时出现的问题是,只能针对http协议的网站有效,对于https协议的网站则会出现网站无法打开的情况,当时我的判断是因为ssl加密协议的问题,经过今天的实验,验证了我的猜想。一.搭建https环境环境:ubuntu18+apache2首先,安装相应依赖环境,ubuntu18自带openssl,故我们不用在单独安装sud...

2020-02-12 16:29:26 2178

原创 基于Qt的多人实时桌面共享

首先需要进行问题分析,想要达到多人实时桌面共享功能,要先解决四个问题:1.如何截取桌面画面2. 如何暂存画面,且能够快速的存取, 并且方便进行收发3.暂存的图片以何种格式保存4.利用何种网络协议进行通讯首先解决第一个问题,也是最好解决的问题,在Qt中可以利用QScreen*screen=QApplication::primaryScreen();QPixmap pixbuf=scr...

2020-02-07 12:18:10 2893

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除