首页 > 其他分享 >漏洞

漏洞

时间:2023-05-25 22:45:30浏览次数:35  
标签:函数 esp shellcode jmp 漏洞 地址 ebx

jmp esp 跳板

可以适应shellcode的内存地址动态的变化

windows中系统dll,比如kernel32,user32基本上在每一个进程中的地址都相同,但下次开机就不同了

所以我们在user32中找一个jmp esp指令,jmp esp对应的指令是0xFFE4

OD有一个插件,OllyUni.dll可以快速找到jmp esp这一系列的指令

 

xor ebx,ebx

push ebx

之所以使用push ebx,是因为如果shellcode中出现00可能会被截断

 

抬高栈顶保护shellcode

当shellcode位于栈顶之上时,push 指令压栈可能会破坏shellcode,所以我们通常会在shellcode一开始就大范围抬高栈顶

 

jmp esp的替换

mov eax,esp      jmp eax

 

函数返回地址移位

在一些情况下,返回地址距离缓冲区的偏移量是不确定的,这个时候可以用一片连续的跳转指令来覆盖返回地址,填入大量nop,只要可以击中nop区就可以执行shellcode

 

开发通用的shellcode

从fs:0拿到teb地址,teb中拿peb,peb中拿到dll的双向链表,再拿到kernel32地址,再解析pe文件,拿到loadlibray和getproaddress的地址,这样就可以就可以随意使用函数了

 

调试shellcode,调试shellcode是有一定难度的

这样编写使得我们便于调试

 

加载函数时函数名的处理

我们不希望直接出现Messagebox这种字符串的比较

所以我们使用hash校验函数的名字

 

 

 

 在hash压入栈之前,先把方向标志位DF清零,因为当shellcode是利用异常处理机制而植入时,往往会产生标志位的变化,使shellcode中的字符串处理方向发生变化而产生错误  ,比如LODSD

 

 

 对shellcode进行编码

shellcode中出现NULL字节,或者其他的一些字节,或者有些函数对参数的要求是ascll/unicode,或者杀毒软件静态扫描shellcode中的字符串,就会截断或者拦截

得乔装打扮shellcode

最简单的提前xor shellcode然后在shellcode之前加上解密的代码

 

标签:函数,esp,shellcode,jmp,漏洞,地址,ebx
From: https://www.cnblogs.com/yewu1/p/17433138.html

相关文章

  • web安全之文件上传漏洞、文件包含漏洞
    文件上传原理:对上传的文件未进行过滤,或者过滤不严,导致恶意文件被成功上传到网站。防御:代码加强、WAF拦截、webshell查杀、正则搜索网站目录是否存在eval等敏感字段。前端JS绕过更改前端限制burp抓包MIME绕过 漏洞利用文件头欺骗  gif89a<%evalrequest("pwd")%>fu......
  • web安全之SQL注入漏洞
    SQL注入原理:用户能控制输入的内容;Web应用把用户输入的内容带入到数据库中执行。分类:依据注入点参数类型分类:数字型注入、字符型注入、搜索型注入        依据获取信息的方式分类:union注入、布尔盲注、时间盲注、报错注入、堆叠查询注入        依据请求方......
  • 《MS17-010(永恒之蓝)—漏洞复现及防范》
    作者:susususuao免责声明:本文仅供学习研究,严禁从事非法活动,任何后果由使用者本人负责。一.什么是永恒之蓝?-永恒之蓝永恒之蓝(EternalBlue)是一种利用Windows系统的SMB协议漏洞来获取系统的最高权限,以此来控制被入侵的计算机。而SMB服务是一个协议名,它能被用于Web连接和客......
  • 多种数据库注入复线-墨者学院SQL手工注入漏洞测试(Access数据库)
    SQL手工注入漏洞测试(Access数据库)1.判断注入点数字型报错,发现注入点开注2.用orderby获取列数在5时报错,判断为4列联合查询用递增的数字判断占位,发现无法回显题目给了是access数据库,access数据库的SQL手工注入,在联合语句显示可显字段时,必须要from表名因此,我们需要猜测表名3.......
  • 多种数据库注入复线-墨者学院SQL手工注入漏洞测试(Oracle数据库)
    SQL手工注入漏洞测试(Oracle数据库)1.判断注入点判断注入类型为数字型2.用orderby获取列数2时正常,3时报错,得到列数为23.联合查询获取占位符常规联合查询报错这是由于oracle数据库语法十分严格,在后面需要指定数据表和准确的字符类型我们使用dual表,dual是oracle中的一个实际存......
  • [PHP](MD5、sha1)比较漏洞-笔记
    PhP(MD5、sha1)比较漏洞(弱比较、强比较、强碰撞)弱比较md5和sha1弱比较都是利用php解析哈希值以“0E”开头的特性,结果都为0符合参数1的字符串值和参数2的字符串值不相等,但md5值相等。如:240610708,aabg7XSs,aabC9RqS,s878926199a这四段字符串MD5编码后结果分别对应240610708:0E462097......
  • 6、CSRF漏洞管理
    一、CSRF概念答:全称是Cross-siterequestforgery,跨站请求伪造,我们可以理解未这种漏洞为攻击者利用被攻击者的身份发起了某些被攻击者原本不知情的网络请求,包括以被攻击者的身份发布微博,留言等。CSRF能够发邮件,发消息,盗取账户,购买商品,虚拟货币转账等。二、CSRF漏洞原理......
  • 5、请求伪造漏洞
    请求伪造漏洞:SSRF(服务器端请求伪造)、CSRF(跨站请求伪造)一、SSRF漏洞概念:攻击者构造形成由服务器端发起请求的一个安全漏洞,攻击目标是从外网无法访问的内部系统,可以对内外网或者本地进行端口扫描,某些情况下端口的Banner会回显出来(比如3306),使用file:///协议读取本地文件。首......
  • 端口-协议-漏洞
    计算机网络七层模型中对应的协议应用层:用户接口(FTP、Telnet、SMTP、HTTP、RIP、NFS、DNS、SNMP)表示层:定义数据格式(JPEG、ASCLL、GIF、DES、MPEG)会话层:定义了开始、控制、结束一个会谈(RPC、SQL、NFS)传输层:差错恢复、数据包的重新排列(TCP、UDP、SPX)网络层:端到端的包定义(IP、IP......
  • 一文读懂面试官都在问的Fastjson漏洞
    Fastjson1.2.24-RCE漏洞漏洞简介fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将JavaBean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。即fastjson的主要功能就是将JavaBean序列化成JSON字符串,这样得到字符串之后就可以通过数据库等方式......