• 主页
  • 相册
  • 随笔
  • 目录
  • 存档
Total 244
Search AboutMe

  • 主页
  • 相册
  • 随笔
  • 目录
  • 存档

常见漏洞利用

2020-09-28

1. OWASP TOP 10

漏洞定义攻击原理利用场景修复方案
XSS在动态生成的web页面直接显示不可信(未严格验证)的外部输入,恶意用户可以利用该缺陷往动态页面中注入恶意script代码再浏览器页面执行存储:留言、评论、博客日志和各类表单等。应用程序从数据库中查询数据,在页面中显示出来  反射:插入url DOM:浏览器cookie   网站挂马   钓鱼  xsrfhttp-only输入过滤   输出编码处理全局XSS过滤器
SQL注入SQL代码注入或者添加到应用(用户)的输入参数中的攻击,之后再将这些参数传递给后台的SQL服务器加以解析并执行其本质是对于输入的检查不充分,简言而之就是用户提交的数据代入数据库的查询。数据泄露  绕过认证、验证、绕过登录严格限定参数类型;参数化查询强制开发者先定义所有的SQL语句,然后向每个查询传递参数。使用参数化查询可以使数据库区分代码和数据的区别,用户输入会被当做数据处理,而不是当成代码被执行。内置过滤系统(本质是黑名单,很常见但不推荐)经常采用addslashes函数,他会在指定的预定义字符前添加反斜杠转义,预定义字符;单引号(‘)双引号(“)反斜杠0 NULL;
CSRF攻击以受害者的名义伪造请求发送给受攻击的站点,从而在并未授权的情况下执行在权限保护之下的操作用户未退出网站A之前,在同一浏览器中,打开一个TAB页访问网站B;网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A;添加管理员账号提权   购买商品,虚拟货币转账等验证HTTP Referer字段在请求头中添加token并验证;在服务器端建立一个拦截器来验证这个token。在HTTP头中自定义属性并验证;和第2中方式一样使用token验证,区别在于并不是以请求参数的形式添加到HTTP请求中,而是放置在http头中自定义的属性里
权限绕过/未授权访问超出了权限或权利范围访问系统未授权、水平、垂直比如说某一页面服务器端响应(不局限于页面返回的信息,有时信息在响应包中,页面不一定能看见)中返回登录名、密码、手机号、身份证等敏感信息,如果存在平行越权,通过对用户ID遍历,就可以查看所有用户的敏感信息,这也是一种变相的脱裤,而且很难被防火墙发现,因为这和正常的访问请求没有什么区别,也不会包含特殊的字符,具有十足的隐蔽性对于可控参数进行严格的校验与过滤。不要直接使用对象的实名或关键字完善用户权限体系
任意文件上传若服务端脚本语言未对上传的文件进行严格的验证和过滤,导致恶意用户上传恶意的脚本文件时,就有可能获取执行服务器命令的能力本地文件上传限制被绕过   中间件解析漏洞相册、头像上传文件扩展名服务器端白名单校验   判断文件类型(可结合MIME Type,后缀检查等方式)上传文件重命名   隐藏上传文件路径文件上传目录设置为不可执行
XXEXML外部实体注入。当允许引用外部实体时,通过构造恶意的内容,就可以导致任意文件读取,系统命令执行,内网端口探测,攻击内网网站等危害通常攻击者会将payload注入到XML文件中,一旦文件被执行,将会被读取服务器上的本地文件,并对内网发起访问扫描内部网络端口。换而言之,XXE是一种从本地到达各种服务器的方法。此外,在一定程度上这也可能帮助攻击者绕过防火墙规则或者身份认证检查。远程代码执行,读取服务器文件配置XML处理器去使用本地静态的DTD,不允许XML中含有任何自己生命的DTD
会话固定攻击会话固定(Session fixation)是一种诱骗受害者使用攻击者指定的会话标识(Session fixation)的攻击手段攻击者通过某种手段重置目标用户的SessionID,然后监听用户会话状态每当用户登录的时候就会重置SessionIDSessionID闲置过久时,进行重置SessionID大部分防止会话劫持的方法对会话固定攻击同样有效。如设置httpOnly,关闭透明化SessionID,User-Agent验证,Token校验等
敏感信息泄露敏感信息通过明文保存,界面未掩码,后端接口返回,直接放在URL中等方式造成数据泄露,称之为敏感信息泄露数据被盗取贩卖使用HTTPS传输敏感信息;敏感信息使用POST请求提交
命令行注入攻击参数接收用户输入,并未过滤用户输入的数据,攻击者可以构造恶意命令或代码形成系统命令执行漏洞系统提权;读取/操作系统敏感文件用白名单方式,对一切用户输入进行校验过滤
反序列化通常在解析认证token,session的时候。现在很多web都使用redis、mongodb、memcached等来存储session等状态信息   可能将对象Pickle后在网络中传输

2. DLL注入

现代软件其实都不是一个打包的一整个exe,而是一个个互相分工的模块。这样做的好处(多得要死,分工写代码/方便维护/blablabla….

exe就是软件的启动模块。在你打开exe之后,Windows会根据exe的要求,把exe需要的其他模块(也就是dll),也一起加载进来。以这个exe为启动点关联起来的(exe和dll们)这么一堆代码,就被称为一个进程


dll注入技术听名字就知道,就是和打针一样,把exe不需要的dll强行加载进进程里去

现在的反外挂系统,都会监视Windows的这些个接口,发现这些接口被谁调用了!就知道外挂进来了。所以现在的游戏dll注入,一般都用更难被检测出来的输入法注入 而不是Windows提供的接口(道高一尺魔高一丈((逃

Windows的一个特性,你在一个进程切换输入法,Windows就会把输入法的dll(输入法dll有个别名,叫ime,但其实和dll大同小异)注入到当前进程里去。因为这个是输入法dll,还是操作系统官方名正言顺的注入,所以反外挂系统也很难判断

3. 参考与摘抄

  • Owasp Top10 Web安全宝典-常见漏洞及修复方案_D.K专栏-CSDN博客
  • 游戏中注入 DLL 是什么意思,具体怎么实现的? - LoyieKing的回答 - 知乎
  • Security
数据结构备忘录
日志审计与痕迹清除
  1. 1. 1. OWASP TOP 10
  2. 2. 2. DLL注入
  3. 3. 3. 参考与摘抄
© 2024 何决云 载入天数...