- 博客(46)
- 收藏
- 关注
原创 XSS跨站脚本攻击
XSS主要原因:过于信任客户端提交的数据**‘XSS漏洞形成原因类似SQL注入漏洞测试中的单引号‘’,一旦XSS的弹框警告脚本执行成功,也就意味着后端服务器没有对特殊字符做过滤<>/’**这样就可以证明,这个页面位置存在了XSS漏洞XSS主要分类:反射型xss攻击(Reflected XSS),又称为非持久性跨站点脚本攻击,它是最常见的类型的XSS。漏洞产生的原因是攻击者注入的数据反映在响应中。一个典型的非持久性XSS包含一个带XSS攻击向量的链接(即每次攻击需要用户的点击)存储型XSS
2020-10-24 21:49:16
186
原创 文件上传漏洞渗透及防御
在我们访问网站时很多时候需要我们上传文件,如头像、PDF文档等按照规定,需要我们上传图片的话我们会上传图片,需要我们上传文档我们会上传文档如果网站没有对我们上传的文件信息做出检测,我们上传了一些代码。如PHP文件,我们可能就会获得一些WEB的权限如果一个网站后台的文件上传检测安全级别很低,并不严禁,如下图的PHP源码,只是规定了上传到服务器的位置和上传的文件名,那我们就可以上传一个php一句话木马来获得webshell以下代码时PHP的一句话木马,使用中国菜刀进行连接,单引号里的为密码一个
2020-09-24 00:32:17
440
原创 http数据包学习
一个请求由四个部分组成:请求行,请求头标、空行和请求数据1、请求行:请求行由三个标记组成:请求方法、请求URL和HTTP版本,他们用空格分隔WEB服务器的响应数据由四个部分组成:状态行、响应头标、空行、响应数据HTTP响应码:200:文件存在403:文件夹存在404:文件或文件夹不存在500:服务器端错误,文件或文件夹存在不一3xx:文件或文件夹存在不一...
2020-09-21 19:14:41
148
原创 交换机配置
交换机根据不同作用有不同的视图,分为以下几种用户视图设备启动后的缺省视图,可查看启动后基本运行状态和统计信息系统视图配置系统全局通用参数的视图路由协议视图配置路由协议参数的视图接口视图配置接口参数的视图用户界面视图配置登陆设备的各个用户属性的视图display current-configuration可以查看当前的配置display saved-configuration //显示flash中配置文件,即下次上电启动时所用的配置文件reset saved-c
2020-09-09 18:03:03
198
原创 提权概念
计算机系统中的权限可以分为以下几种来宾权限可以设置账号密码供来宾使用,而匿名访问权限可以不用账号密码访问当我们拿到WebShell权限时我们应该想法得到服务器权限当我们拿到一个普通的user数据库权限时我们应该想法得到一个root权限,当我们拿到root权限时我们在想法得到系统权限普通用户权限没法添加用户...
2020-08-25 15:44:16
112
原创 shellcode学习
1、独立的存在,无需任何文件格式的包装2、内存中运行,无需固定指定的宿主进程生成shellcode的一种方法是找到编写的程序的文件偏移,用winhex打开程序,找到文件偏移,复制十六进制保存为文件。用ida打开我们的文件,在函数名称栏我们可以看到有很多sub_开头的函数,这些全是vs给我们自动添加的代码,这些代码对我们编写shellcode有很大干扰,我们要尽量将其清除1、修改程序入口点2、关闭缓冲区安全检查代码生成中的运行库debug版本要设置成为MTD,release版本要修改为MT
2020-08-21 02:26:25
325
原创 绑定导入表
我们之前分析过导入表,在PE文件加载前IAT表和INT表相同,只有文件加载后才能根据INT表通过序号或名称使用GetProcessAddress函数获得函数地址贴到IAT表中我们观察记事本程序,记事本程序在PE文件加载前就把函数地址贴到IAT表中了。这种情况叫做绑定导入表这样做的好处是程序运行快,坏处是万一dll没有占住要使用的ImageBase,会出现错误,还有万一dll被修改了,值会发生改变如果导入表中的时间戳为0代表dll的所有函数地址还没有绑定,当时间戳为-1时,意味着函数地址已经被绑定那么
2020-05-15 04:17:10
226
原创 IAT表、导入表(滴水)
IAT表我们用OD查看程序中调用API时是4070BC中存储的值4070BC中存储的是一个函数地址,这个地址是一个dll提供的空间文件对齐和内存对齐相同我们在文件中查看70bc调用的地址是76047604中存储的是MessageBox,是函数名称可以看出程序运行前和运行后不同是使用了动态链接库,动态链接库只有在程序运行时才会加载到程序中如果调用是我们自己写的程序,地址都是写死的为了防止dll文件重定位,所以调用dll中函数时不能将地址直接确定所有dll加载完后,在确定地址导入表
2020-05-14 20:43:21
397
原创 移动导出表-重定位表(滴水)
PE文件的各种表示编译器生成的,里面存储了非常重要的信息在程序启动的时候,系统会根据这些表做初始化的工作当要对程序进行加密时,需要将这些表移到自己创建的节里,不然程序运行不起来...
2020-05-02 00:43:20
517
原创 重定位表(滴水)
各个模块间的地址对齐为10000Hdll文件的ImageBase一般是10000000h,那是不是第二个就加载不上了程序中全局变量的地址是写死的一般EXE文件没有重定位表,DLL文件有重定位表因为EXE独占4GB,没有人和他抢位置,而dll有多个SizeOfBlock用于确定下一块数据从哪里开始块中剩余的空间按2个字节划分重定位地址一般是以页划分,也就是1000h,2的12次方,...
2020-05-01 04:12:24
294
原创 导出表(滴水)
可选PE头中最后一个元素是一个目录项的数组,这个数组的第一项就是导出表函数序号表中存储的就是函数序号导出表中的函数数量的计算方法是最大的序数减去最小的序数加1Base中存储的是序号开始的地址,序号表中的序号需要加上Base才是我们自己设置的导出序号...
2020-04-29 02:43:20
253
原创 节表(滴水)
节表负责管理各个节在文件中或者内存中从哪里开始存储,怎样存储IMAGE_FILE_HEADER中的NumberOfSections存储的是节表数量
2020-04-25 03:16:58
166
原创 PE头字段说明(滴水)
e_lfanew指向的是PE,PE下面才是标准PE头NumberOfSections指向文件中一共有多少个节AddressOfEntryPoint也叫作OEP,AddressOfEntryPoint+ImageBase就是OD中程序开始断下来的地址ImageBase指的是在内存中所有的数据是从哪里开始的...
2020-04-25 01:23:05
363
原创 PE头解析_手动(滴水)
文件存储在硬盘上和在内存上加载时文件内容几乎相同,位置不同打开notepad.exe在硬盘上是从0开始,在内存中是从100000开始应用程序、DLL和SYS程序的开头全都是4D 5A,他们都是PE文件可以看到文件总是分成一段一段的,中间有很多0,我们叫它分节硬盘中的段之间空隙小,内存中空隙大文件中有一部分是代码,有一部分是数据,有的数据是可读可写,有的数据是只能读不能写老的编译器硬盘...
2020-04-21 01:27:30
488
原创 注入代码(滴水)
远程线程注入是使用CreateRemoteThread函数在目标进程中创建一个线程,我们是不是可以把一个函数写入目标进程中,之前我们可以把一段内存复制到目标进程中需要考虑将代码复制到目标进程中,还有复制过去的程序能够正常执行吗函数被编译以后全都是机器指令,所以我们要拷贝的全是机器指令,机器码和汇编有对应关系全局变量并不是放在程序堆栈中,而是常量区固定地址系统调用也是当程序各个模块加载完...
2020-04-05 12:25:29
571
原创 模块隐藏(滴水)
dll注入进程是很难存活的,因为被注入的进程很容易检测到有一个DLL不是自己加载的,是别人加载的。所以我们需要将DLL隐藏起来我们学习过API,可以枚举进程模块,那么这些API是怎么把模块查出来的呢进程在0环有个结构体,叫EPROCESS。线程在0环有个结构体,叫ETHREAD。PEB和TEB是三环的结构体,在三环就能访问PEB结构体的00c偏移是一个Ldr结构体这个结构体就包括模块链...
2020-04-02 22:51:27
834
原创 远程线程注入 (滴水)
当创建一个线程的时候就是创建了一个线程的结构体windows提供了一个函数,创建远程线程,允许你在别的进程创建线程要先使用OpenProcess函数根据进程ID获得别的进程的句柄,在前面讲过,每个进程中有一个局部句柄表,里面都是在进程中打开的对象。操作系统有一个全局句柄表,也就是进程ID要执行的线程函数是在目标进程的函数如果可以在目标进程创建一个线程并执行自己进程的代码那就可以为...
2020-04-01 01:20:38
560
原创 内存映射文件(滴水)
内存映射文件的实现就是把一个硬盘上的文件直接映射到物理页上,然后再把物理内存映射到进程的虚拟内存中,这样在虚拟内存中读写相当于操作自己的内存一样,可以直接操作文件好处是操作简单,避免打开文件等复杂操作所有对文件的操作都有效。当要读写的文件非常大时,内存映射文件的性能比io读写方式性能好内存映射文件要先得到文件句柄CreateFileMapping函数第一个参数传入文件句柄,那么它会把一...
2020-03-31 02:06:31
237
1
原创 虚拟内存与物理内存(滴水)
每个进程都有自己的4GB内存空间,内存地址为0-FFFFFFFF。这个内存不是真正的物理内存,是操作系统分配给进程的虚拟地址但当我们在进程内存中写入值的时候值会保存下来,这个值保存在物理内存中,当虚拟内存真正使用的时候,操作系统才会在物理内存中分配内存存储数据INTEL x86架构中物理内存按照4KB的方式来分配的,把所有物理内存按照4KB大小分成一页一页的,所以把物理内存称为页式管理物理内...
2020-03-29 23:56:20
257
原创 线程控制(滴水)
Sleep函数可以让线程停止运行SuspendThread函数和ResumeThread函数传入线程句柄可以让其他线程暂停和恢复运行WaitForSingleObject函数用来等待对象状态发生变化,在等待对象状态发生改变前当前线程处于阻塞状态,等到对象状态发生变化,线程在继续运行WaitForMultipleObjects函数用来等待多个内核对象,参数bWaitAll可以指定是所有对象发...
2020-03-29 21:44:04
181
原创 创建线程(滴水)
创建线程时dwCreationFlags参数为CREATE_SUSPENDED时线程创建完后并不是立马执行的,处于挂起状态,可以使用ResumeThread函数激活线程线程被清理的两个必要条件:一是线程内核对象计数器变为0,所有打开线程全都CloseHandle。二是线程代码已经执行完毕...
2020-03-29 16:57:06
191
原创 进程相关API(滴水)
每一个进程都有一个句柄表,属于进程自己,里面包含自己打开对象的句柄操作系统也有一张表,每个操作系统只有一份,称为全局句柄表。里面包含了所有正在运行的进程和线程CreateProcess函数创建进程时返回的进程句柄hProcess为当前进程私有句柄表中的索引;进程IDdwProcessId为全局句柄表中的索引。索引编号是唯一的dwCreationFlags参数可以以不同形式创建进程,CREA...
2020-03-29 01:23:11
301
转载 ObjectType_Callback探索
使用PCHunter工具查看object钩子时发现有一种Hook是ObjectType_Callback,Object类型为ProcessWRK中的全局类型对象变量中没有这一类型查看ObTypeIndexTable表,对比有HOOK和无HOOk的情况下,看元素是否有增加,如果是自创类型,在这个表里,应该有增加一项ObTypeIndexTable在XP系统中不存在,前两项是无效的当有HOO...
2020-02-28 00:17:31
1191
原创 滴水逆向系统调用
四、API函数的调用过程(保存现场)了解KiSystemService需要了解几个结构体无论是通过中断门还是KifastcallEntry进入0环,三环的所有寄存器都会存到Trap_Frame结构体中中断门当权限发生变化时,中断门会像0环堆栈中压入五个值,分别是三环的ss,三环的esp,三环的eflag,三环的cs还有三环的eip中断门进入0环提权会压入这五个值,KiSystem...
2020-02-16 00:38:47
945
原创 调试与异常
一、调试概述调试相当于我们看医生,医生会看出我们身体上的问题windows提供DebugActiveProcess函数来附加目标进程调试进程,参数是进程ID,调试成功返回true,失败返回false。返回false可以使用GetLastError获取错误由于不知道什么时候会传来调试信息,所以用一个死循环一直等待目标进程发送调试信息给调试器用循环中WaitForDebugEvent来等待...
2020-02-07 01:13:11
801
原创 滴水逆向保护模式(页)
019 10-10-12分页每个进程都有自己的4GB内存空间进程的4GB内存空间为假的,当使用某一块空间时存到物理内存中需要转换才能找到物理内存物理内存也不是内存条,后面还有一层板卡地址CPU将线性地址转换为物理地址exe文件会用到系统dll,dll存在物理地址上,给每个exe文件映射一份线性地址所有的寄存器中只有Cr3存储的是物理地址!dd为查看物理内存!dd Cr...
2019-11-14 00:28:49
742
原创 滴水逆向进程与线程
一、进程结构体EPROCESS是0环进程结构体,PEB是三环进程结构体EPROCESS的第一个成员为KPROCESSWaitForSingleObject可以等待对象、进程或线程,只要0环对象以DISPATCH_HEADER开头称为可等待对象DirectoryTableBase为页目录表基址,是要填到Cr3中的值windbg中dd PsActiveProcessHead查看链...
2019-11-06 22:20:56
1185
原创 滴水逆向篇消息机制
一、消息队列在哪有专用进程负责把消息分给各个进程,反复涉及到跨进程(linux下使用此方案,windows不适用)3环进0环时,有一个服务号,如果小于100,调用ntoskrnl.exe模块,如果大于100要找的内核函数在win32k.sys模块中,里面是一些图形模块二、窗口与线程w32k.sys模块初始化时调用InitInputImpl中有两个函数,一个监控鼠标,一个监控键...
2019-11-04 22:29:23
504
3
原创 滴水逆向软件调试
一、调试对象分为两种:创建进程和附加进程创建进程为将未运行的程序创建进程附加进程为将运行中的进程附加对调试器做的事DebugActiveProcess调用了DbgUiConnectToDbg,然后调用了ntdll.dll模块中的DbgUiConnectToDbgDbgUiConnectToDbg调用ZwCreateDebugObject,进入0环,创建_DEBUG_OBJECT...
2019-10-27 23:24:55
1429
1
原创 服务器文件系统报错处理办法
现象服务器启动过程中,提示如下文件系统错误的,需要进入单用户扫描1)Control-D报错(注:下图所示,报错分区为/dev/sda6)2)刷屏或者日志报错(下图中报错分区为sdg1)处理办法1、单用户处理1)按【Ctrl+D】重启服务器,进入系统引导画面,在默认3秒内按【E】键进入系统选择界面2)按e,进入如下界面选择kernel /boot/vmlinuz行 再次按e...
2019-10-24 17:59:36
1688
1
原创 服务器内网不通
重启服务器进入单用户进入grub界面,按e,进入如下界面选择kernel /boot/vmlinux行 再次按e进入下面界面后,输入(空格)1或者s,然后回车回车后返回如下界面,按b进行启动进入单用户进入单用户后,首先查看网卡配置是否正确万兆网卡服务器网卡配置文件为:/etc/sysconfig/network-scripts/ifcfg-xgbe0千兆网卡服务器网卡...
2019-10-24 11:37:05
574
原创 网络
CSMA/CD的意思是载波监听多点接入/碰撞检测(Carrier Sense Multiple Access with Collison Detection) 多点接入MA 多个主机连接在一条总线上,竞争使用总线CSMA/CD 载波监听CS 发送数据前先检测总线(“先听后说”)若总线空闲,...
2019-10-18 00:35:09
215
原创 服务器SSH无法连接
sshssh= secure shell可以让远程主机通过网络访问sshd服务,开始一个安全shell,并对其进行操控sshd可以通过网络在主机中开启shell的服务1、现象:服务器启动过程中SSH启动失败2、SSH无法连接原因1)/var/empty/sshd文件夹丢失2)sshd服务未开机启动3)sshd拒绝链接3、处理SSH Dead方法重启进入服务器单用户1)检查...
2019-10-14 13:47:04
745
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人