自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 博客迁移 : )

感谢各位博友的关注,最近想了一下,还是不用CSDN写博客了吧,原因有三: 1、需要整合知识体系:以前写的小白文太零散了,逻辑性弱,无系统概括,不便于阶段性总结,在新博客会小结一下知识架构、将目录和标签更为清晰地进行分类; 2、博文的质量需要提高一下; 3、受不了广告推送,实在是烦呢 : ) ...

2019-02-24 13:33:55 848 1

原创 通过DVWA学习DOM型XSS

下了个新版的DVWA看了下,发现新增了好几个Web漏洞类型,就玩一下顺便做下笔记,完善一下之前那篇很水的DOM XSS文章,虽然这个也很水 :) 基本概念 DOM,全称Document Object Model,是一个平台和语言都中立的接口,可以使程序和脚本能够动态访问和更新文档的内容、结构以...

2019-01-02 23:26:32 1027 2

原创 phar反序列化漏洞

之前做CTF遇到phar反序列化漏洞概念,这里小结一下,主要参考自https://paper.seebug.org/680/ 基本概念 phar (PHP Archive) 是PHP里类似于Java中jar的一种打包文件,用于归档。当PHP 版本>=5.3时默认开启支持PHAR文...

2019-01-01 18:28:07 2246 1

原创 (Java)XMLDecoder反序列化漏洞

基本概念 XMLDecoder用于将XMLEncoder创建的xml文档内容反序列化为一个Java对象,其位于java.beans包下。   影响版本 XMLDecoder在JDK 1.4~JDK 11中都存在反序列化漏洞安全风险。   Demo import com.sun.be...

2018-12-17 22:46:46 1677 0

原创 (Python)cPickle反序列化漏洞

基本概念 Python中有个库可以实现序列化和反序列化操作,名为pickle或cPickle,作用和PHP的serialize与unserialize一样,两者只是实现的语言不同,一个是纯Python实现、另一个是C实现,函数调用基本相同,但cPickle库的性能更好,因此这里选用cPickle...

2018-12-15 17:04:26 1549 0

原创 (Python)PyYAML反序列化漏洞

基本概念 (引用百度)YAML是“YAML不是一种标记语言”的外语缩写;但为了强调这种语言以数据做为中心,而不是以置标语言为重点,而用返璞词重新命名。它是一种直观的能够被电脑识别的数据序列化格式,是一个可读性高并且容易被人类阅读,容易和脚本语言交互,用来表达资料序列的编程语言。 PyYAML是...

2018-12-15 14:00:26 1030 1

原创 SQL注入写WebShell方式小结

这里小结一下通过SQL注入写入WebShell的方法。 传统的SQL语句写shell 通过SQL注入select into outfile实现,如: 1' union select 1,'<?php eval($_POST[a]);?>...

2018-12-09 11:08:43 8481 0

原创 Windows下的一种PHP隐蔽后门姿势

在Windows中的PHP解释环境中有两个函数能够自动加载文件,即auto_prepend_file和auto_append_file,其在php.ini中可修改成任意文件,可为PHP或DLL文件。将后门代码写入这两个文件,再修改include_path为后门文件的绝对路径,则Web站点下所有的P...

2018-12-09 10:58:27 739 2

原创 PHP内存型木马

基本概念 PHP内存性木马即PHP不死马,一般会删除自身以进程的形式循环创建隐蔽的后门。 通常在AWD Web题中用得较多。 Demo及原理 nodie.php <?php ignore_user_abort(true); set_time_limit(0); un...

2018-12-09 10:45:42 2067 0

原创 Linux环境与相关工具

这里小结一下Linux二进制分析相关的环境与工具的基础知识。 Linux工具 Linux自带了很多常用的binutils工具,这些工具可在http://www.gnu.org/software/binutils/中找到,其中包含许多用于二进制分析和破解的工具。 GDB GNU Debuge...

2018-12-08 21:45:13 212 0

原创 PHP反序列化漏洞

序列化与反序列化 通常我们定义了一个类的对象,其中保存了一些属性值,为了方便下次可以继续使用在这个对象或者在其他的文件中可以使用该对象,于是就可以调用serialize()函数将该对象序列化为字符串的形式,将该字符串保存起来,等到需要使用该对象时只需将该字符串传过去并调用unserialize(...

2018-12-08 18:13:02 426 0

原创 使用汇编语言编写注入代码

这里主要借助OllyDbg的汇编功能,使用汇编语言编写注入代码即ThreadProc()函数。与上一篇文章的CodeInject.cpp代码类似,但区别在于THREAD_PARAM结构体不包含字符串成员,且使用指令字节数组替代了ThreadProc()函数(因为代码本身同时包含所需的字符串数据)。...

2018-10-06 23:22:49 1111 1

原创 代码注入(线程注入)

代码注入概念 代码注入是一种向目标进程插入独立运行代码并使之运行的技术,其一般调用CreateRemoteThread() API以远程线程的形式运行插入的代码,亦称为线程注入。代码以线程过程(ThreadProcedure)形式插入,而代码中使用的数据则以线程参数的形式插入,即代码和数据是分别...

2018-10-05 23:16:37 2730 1

原创 HITB_Binary_100_writeup

HITB Binary 100是之前的HITB CTF的一道简单的逆向题,这里简单做一遍。 下载hitb-bin100.elf 将elf文件先跑一下,发现像歌词播放一样、每个一秒钟左右输出一句话,歌词好像没啥用,而且运行很久也还没停下来: 根据字符串检索法,扔到IDA的String窗口查...

2018-08-26 15:10:26 202 0

原创 Python安全小工具之反编译pyc文件

有时需要查看某个Python Web目录内Python源码,但dump下来只有pyc文件而没有py文件,这时需要我们反编译pyc文件为py文件。为了方便就写个脚本遍历目录内的pyc文件并进行反编译。 主要应用Python的第三方uncompyle6库,安装:pip install uncompy...

2018-08-26 12:46:52 958 0

原创 Windows缓冲区溢出之SLMail

基本概念与环境准备缓冲区溢出:当缓冲区边界限制不严格时,由于变量传入畸形数据或程序运行错误,导致缓冲区被填满从而覆盖了相邻内存区域的数据。可以修改内存数据,造成进程劫持,执行恶意代码,获取服务器控制权限等。在Windows XP或2k3 server中的SLMail 5.5.0 Mail Serv...

2018-07-08 00:23:45 3369 1

原创 通过修改PE加载DLL

基本概念除了DLL动态注入技术外,还可以通过手工修改PE文件的方式来加载DLL,这种方式只要应用过一次之后,每当进程开始运行时便会自动加载指定的DLL。整体思路如下:1、查看IDT是否有充足的空间,若无则移动IDT至其他位置,若有则直接添加至列表末尾;2、若无,修改OPTIONAL头IMPORT ...

2018-06-24 10:51:58 1701 0

原创 DLL卸载

DLL卸载DLL卸载(DLL Ejection)是将强制插入进程的DLL弹出的一种技术,原理是驱使目标进程调用FreeLibrary() API,即将FreeLibrary() API的地址传递给CreateRemoteThread()的lpStartAddress参数并把要卸载的DLL的句柄传递...

2018-06-23 09:19:43 1782 0

原创 DLL注入

DLL注入DLL(Dynamic Linked Library动态链接库)被加载到进程后会自动运行DllMain()函数,用户可以把想执行的代码放到DllMain()函数,每当加载DLL时,添加的代码就会自然而然得到执行。DLL注入是指向运行中的其他进程强制插入特定的DLL文件。其工作原理是从外部...

2018-06-22 20:22:57 1210 1

原创 Windows消息钩取

Windows消息钩取简单地说,消息钩取就是偷看、截取信息。常规Windows消息流:1、发生键盘输入事件时,WM_KEYDOWN消息被添加到[OS message queue];2、OS判断哪个应用程序中发生了事件,然后从[OS message queue]中取出消息,添加到相应应用程序的[ap...

2018-06-13 20:13:01 1064 2

原创 内嵌补丁练习

内嵌补丁内嵌补丁即内嵌代码补丁(Inline Code Patch),当难以直接修改指定代码时,插入并运行被称为“洞穴代码”(Code Cave)的补丁代码后,对程序实现打补丁。该技术经常用于对象程序经过运行时压缩(或加密处理)而难以直接修改的情况。如图,左边是经典的运行时压缩代码(或加密代码),...

2018-06-12 19:48:44 401 0

原创 UPack的PE文件头分析与OEP查找

UPack(Ultimate PE压缩器),是一种PE文件的运行时压缩器,特点是使用独特的方法对PE头进行变形。UPack会使许多的PE分析程序无法正常运行,因此很多恶意代码都是通过UPack进行压缩。   UPack PE文件头分析 使用UPack压缩notepad.exe: UPack...

2018-06-11 20:04:08 539 0

原创 从可执行文件中删除.reloc节区

基址重定位表对于DLL和SYS文件来说是必须得,但在EXE格式的PE文件中,基址重定位表并无作用,将其删除后程序仍然能够正常运行。VC++中生成的PE文件的重定位节区名为.reloc,删除该节区后文件可正常运行,并且缩减了文件大小。.reloc节区一般位于所有节区的最后,可以使用PEView和Wi...

2018-06-09 22:19:14 1076 0

原创 基址重定位表

基址重定位表(Base Relocation Table),记录PE重定位时需要修改的硬编码地址的位置。一般地,向进程的虚拟内存加载PE文件(EXE、DLL、SYS)时,文件会被加载到PE头的ImageBase所指的地址处。若加载的文件为DLL或SYS,且ImageBase位置加载了其他DLL或S...

2018-06-09 22:10:32 600 0

原创 运行时压缩(UPX)

任何文件都是由二进制组成的,因而只要使用合适的压缩算法,就可以是文件大小进行压缩。无损压缩:经过压缩的文件能完全恢复。如7-zip、面包房等压缩程序。有损压缩:经过压缩的文件不能完全恢复。压缩多媒体文件时大部分使用有损压缩。运行时压缩器:运行时压缩器(Run-Time Packer)是针对可执行文...

2018-06-07 19:57:03 1659 3

原创 PE文件格式

PE即Portable Executable,是Windows OS下使用的可执行文件格式。PE文件是指32位的可执行文件,亦称为PE32。64位的可执行文件称为PE+或PE32+,是PE文件的一种扩展形式。PE文件种类如下表:PE文件基本结构:从DOS头至节区头是PE头部分,下面的节区合称PE体...

2018-06-04 19:57:40 521 0

原创 逆向分析Tut.ReverseMe1

这里调试一个https://tuts4you.com/上的crackme文件Tut.ReverseMe1.exe。运行程序查看:提示需要去除所有的Nags(唠叨)并找到正确的注册码。点击确定之后:提示使用SmartCheck进行注册。这里我们使用调试器进行调试破解。至此,明确一下目标,第一是去掉消...

2018-06-03 17:31:20 618 1

原创 栈帧

栈帧(Stack Frame)是利用EBP寄存器访问栈内局部变量、参数、函数返回地址等的手段,在程序中用于声明局部变量、调用函数等。 整个过程为:调用某函数时,先把用作基准点(函数起始地址)的ESP值保存到EBP并维持在函数内部。无论ESP的值如何变化,以EBP的值为基准能够准确安全访问到相关函...

2018-06-03 10:39:41 876 0

原创 函数调用约定

函数调用约定(Calling Convention)是对函数调用时如何传递参数的一种约定。函数调用完毕后,ESP寄存器的值需要恢复到函数调用之前的值,从而保证可引用的栈大小不会缩减。而函数调用约定就是解决函数调用后如何处理ESP的问题的。1、cdeclcdecl主要是C语言中使用的方式,调用者负责...

2018-06-02 17:26:11 145 0

原创 逆向分析abex'crackme #2

这里接着逆向分析abex' crackme #2。 运行程序,要求填入Name和Serial: 随意填写后点击Check:   可以看到,显示这个序列号错误。 由此可知,该程序是通过获取用户输入的Name字符串,再通过加密的方式加密Name字符生成相应的Serial值。...

2018-06-02 12:58:24 1005 1

原创 逆向分析abex'crackme#1

abexcm1-voiees.exe程序是crackme的第一道最简单的逆向练习题。运行程序查看:弹框显示需要让程序觉得你的HD是一个CD-Rom。然后点击确定:显示错误,说不是CD-ROM。再按确定即退出程序。至此可以明确,需要逆向修改文件的逻辑以绕过检测CD-ROM的判断。使用OllyDbg打...

2018-05-20 11:42:01 598 0

原创 IA-32(Intel Architecture 32位)寄存器小结

这里简单记录一下各个寄存器的基本内容。一、通用寄存器:用于传送和暂存数据,参与算数逻辑运算并保存运算结果。IA-32每个通用寄存器的大小都是32位,即4个字节,主要用来保存常量和地址等信息。以下4个通用寄存器主要用于算术运算如ADD、SUB、XOR、OR等,常用于保存常量与变量的值。EAX:(针对...

2018-05-20 10:25:16 346 0

原创 逆向分析HelloWorld程序

这里将之前学习《逆向工程核心原理》的笔记重新实现整理一遍,代码重新编写实现,以方便以后查阅。 编写运行HelloWorld程序 环境主要是Win7 32位系统,使用VS2010进行编程: #include "windows.h" int main() { Messag...

2018-05-16 11:25:12 2734 0

原创 通过Pentester_Lab学习XML注入

Pentester Lab是一款老外编写的Web渗透练习环境。   XML注入相关概念: XML是一种可扩展标记语言,可以理解为HTML的扩展语言,一般用于数据存储、数据传输、数据共享,其中DTD文档来解释XML文档。XML必须包含根元素,所有的标签都要闭合,对大小写敏感,并且属性值需要加引...

2018-05-14 11:26:45 517 0

原创 Python爬虫之分布式爬虫

本篇文章主要讲讲分布式爬虫的实现,一个是基于主从模式的方法,另一个则是基于Scrapy_redis分布式实现的方法。 分布式进程: 分布式进程是指将Process进程分布到多台机器上,充分利用多台机器的性能完成复杂的任务。在Python的通过multiprocessing库来完成,该模块不仅支持多...

2017-12-20 10:43:46 2215 6

原创 Python爬虫之Scrapy爬虫框架

Scrapy是一个用Python写的爬虫框架,使用Twisted这个异步网络库来处理网络通信。 这里通过创建CSDN博客爬虫来学习Scrapy爬虫框架。 安装Scrapy: 在Linux上,直接pip install scrapy即可; 在Windows上,需要依次安装pywin32、pyOpen...

2017-12-19 12:41:32 2564 0

原创 Ubuntu搭建MongoDB集群

MongoDB集群旨在提高系统的稳定性,使用多个MongoDB存储节点,当主节点挂掉之后从节点可以立即补充进来保证系统可以正常稳定地运行。 在Kali Linux中是默认安装了MongoDB的,位于/etc/init.d/目录。 这里只在Ubuntu上进行操作。 Ubuntu安装MongoDB: ...

2017-12-18 22:26:51 1658 0

原创 机器学习应用之WebShell检测

本文主要参考自兜哥的《Web安全之机器学习入门》 前段时间在研究WebShell的检测查杀,然后看到兜哥的著作中提到的几个机器学习算法中也有实现WebShell检测的,主要有朴素贝叶斯分类、K邻近算法、图算法、循环神经网络算法等等,就一一试试看效果吧。 Python中的几个机器学习的库 1、num...

2017-12-09 11:51:22 4486 1

原创 Web安全加固小结

1、IIS加固: 以IIS上搭建的dvbbs站点为了,在管理工具>IIS管理器>网站>dvbbs>右键属性: (1)修改默认日志路径 c:\windows\system32\logfiles d:\dvbbslog:system读写,Administrator读 (2)网站...

2017-12-06 09:32:51 2973 0

原创 Windows系统安全小结

本文不定期更新,将阶段性的总结记录到博客中,方便以后查看~ Windows用户相关命令及隐藏用户: 查看所有用户:net users 查看指定用户user1:net user user1 添加指定用户user1:net user user1 password1 /add 删除指定用户us...

2017-12-05 10:59:54 1998 0

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