渗透测试常见漏洞说明资料

2023-11-16

一、文件上传漏洞
1、意义:用户上传的可执行脚本文件(木马、病毒、恶意脚本、webshell等),并通过此脚本获得执行服务器的能力;
2、原因:前端和服务器端过滤不严格,黑白名单设置不完善导致,一些文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型;
3、原理:文件上传检查不严、网站服务器黑名单检查忽略大小写、网站在服务器设置白名单忘记%00截断、文件上传后修改文件名处理不当;
4、危害:网站被控制、服务器沦陷、用服务器的其它网站沦陷、上传者留下后门webshell后门监听;
5、绕过JS验证:禁用chrome浏览器,地址栏输入:chrome://settings/content/javascript,禁用火狐浏览器:地址栏输入:aboutconfig,然后再搜索javascrpitenabled,双击关闭JS功能;
6、mime-type绕过防御:目录设置为不可执行,判断文件类型、用随机数改写;
7、黑名单绕过方式:忽略的扩展名、大小写转换、Windows特性(文件名中自动去掉小数点和空格)、双写后缀;
8、白名单绕过方式:观察是前端判断,还是服务器判断,如为前端,则抓包改包即可,后端时需利用一些其它方式,如将小马写入图片格式中,或其它操作;
9、绕过服务端目录路径:使用%00截断后缀名;
10、文件头:一段位于文件开头承担一定任务的数据,为描述文件的一些属性;
二、远程命令执行
1、原因:服务器没有针对执行函数做过滤,就执行了用户提交的命令;
2、命令执行:一般指操作系统命令,远程代码执行:一般指脚本代码;
3、危害:任意执行系统命令、恶意木马被种植、挂马、钓鱼、敏感信息泄露;
4、系统命令执行函数:system(),passthru(),exec(),shell_exec(),popen(),proc_open()等;
5、代码执行函数:eval(),assert(),preg_replace(),create_function(),array_map()等;
6、防御:过滤特殊字符或替换字符、严格验证输入的类型长度、使用escapeshellar函数处理相关参数、尽量使用自定义函数或函数库实现外部应用或命令的功能。
三、中间件解析漏洞
1、Apache漏洞:2.4之前的版本,在拥有多个后缀名时,以最接近文件名的后缀名为真,如1.php.jpg.txt,结果为1.php;
2、IIS文件名/文件夹解析漏洞,5.x/6.0版本,即有字符分隔时,就会隔断去查内存,有则截断;
3、Nginx空字节代码执行漏洞,0.8.411.4.3/1.5.01.5.7版本,当有%00空字节截断时,依旧会加载空字节后的文件类型。
四、自动化注入(sqlmap)
1、sqlmap支持注入模式:基于布尔的盲注、基于时间的盲注、基于报错的注入、联合查询注入、堆查询注入;
2、sqlmap支持注入数据库类型:MYSQL、Oracle、SQL server、DB2等;
3、直接连接数据库,参数:-d,使用参数“-d”直接连接数据库,该参数后跟一个表示数据库的字符串,如:sqlmap -d “mysql://db_user:db_pw@db_IP:db_port/db_name”。
4、指定目标URL,参数:-u或-url,如:python2 sqlmap.py -u “http://db_IP:db_port/user.php?id=0”
5、sqlmap请求方式:get、post、put等,少见的指定方式使用-method=POST来指定;
6、sqlmap支持的操作系统:linux、windows;
7、MySQL数据库注入步骤:探查是否存在漏洞:sqlmap -u “url”、sqlmap -r “file_load”;
8、数据库数据获取步骤:1、-current -db,获取当前数据库名;2、-D“数据库名” -tables,获取表名;3、-D “数据库名” -T “表名” -columns,获取列名;4、—D“数据库名” —T“表名” —C“列名” -dump,获取字段名;
9、MySQL数据库post注入步骤:1、文件中加载HTTP请求:-r 文件名;2、获取数据库名,–current -db;3、获取该数据库中的表名,-D “数据库名” -tables;4、获取该库中的列名:-D “列名” -T “表名” -columns;5、获取该库中的某个列名的字段内容:-D“列名” -T“表名” -C“列名” -dump;
10、防范post注入最有效的方法是:使用过滤函数;
11、指定数据库,绕过SQLMAP自动检测,sqlmap -u “url” -v2 --dbms “Postgresql”;指定操作系统绕过sqlmap自动检测:sqlmap -u “url” -v 2 --os “windows”;
12、WAF绕过方式一:sqlmap -u {目标url} --threads=10 --identify -waf#、sqlmap -u{目标url} --threads=10 --check -waf#;
13、WAF绕过方式二:使用burpsuite,利用tamper脚本绕过过滤,python sqlmap.py -u {目标url} --dbs --batch --flush -session --tamper=脚本名;
14、文件包含条件:1、使用包含函数引入文件;2、用户能控制该动态变量;3、保证配置文件php.ini中的allow_url_fopen和allow_url_include要为On;
15、文件包含:本地包含、远程包含;
16、PHP封装协议;
17、CDN判断方法:1、nslookup域名解析;2、多地ping查询;3、使用工具直接查询;绕过方法:子域名入手、利用网站漏洞、历史DNS记录、CDN本身入手、MX记录或邮件;


复习
1、子域名搜索:使用搜索语法,在线网站查询、脚本工具、nmap端口扫描等工具;
2、服务器类型、数据库类型、目录结构、扫后台(御剑);
3、sql注入(注入点-注入类型);
4、xxs漏洞:反射、存储、DOM型;
5、xxe(概念、危害、相关协议);
6、文件上传;
7、文件包含(四种:include、require、include_once、require_once);分两类:本地文件包含、远程文件包含;
8、远程命令/代码执行(相关函数);
9、awvs(使用、能够扫描的漏洞);

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

渗透测试常见漏洞说明资料 的相关文章

  • 4.通过Opencv采集摄像头视频数据

    VideoCapture 虚拟采集器 一般设备号从0开始 cap read 读取视频帧 返回值有两个 第一个为状态值 读到帧为true 第二个值为视频帧 cap release 释放资源 示例程序 import cv2 引入CV库 创建窗口

随机推荐

  • 深度干货:制造进销存国内现状如何?2023年五大制造进销存最新盘点!

    制造进销存是什么 制造进销存的发展如何 制造进销存的优势在哪里 制造进销存都能为企业提供什么 本文将带大家深入浅出的聊聊制造进销存 全面剖析制造进销存的前世今生 并且为大家提供2023年十大制造进销存系统大盘点 一 什么是制造进销存 制造进
  • W801

    目录 文档来源 芯片概述及MCU 特性可参考 安全特性 Wi Fi 特性 蓝牙特性 低功耗模式 芯片结构 与前述介绍的外设相对应 总线结构 说明 1 AHB 1 总线 主设备列表 编辑 从设备列表 2 AHB 2总线 时钟结构 CDK中对运
  • linux入门系列18--Web服务之Apache服务2

    接上一篇文章 在了解Apache基本配置以及SELinux相关知识后 继续演示Apache提供的虚拟主机功能以及访问控制方式 如果还没看上一篇的建议先查看后再来 上篇文章 linux入门系列18 web服务之apache服务1 三 Apac
  • openwrt调试用到的

    PC间文件共享 python3 m http server 在共享的电脑上 打开浏览器 直接输入 serverip 8000 NFS Ubuntu PC端 sudo apt get install nfs kernel server sud
  • shell的模拟实现

    目录 整体框架分析 代码演示 代码分析 整体框架分析 考虑下面这个与shell典型的互动 xzy ecs 333953 date16 ls makefile mycmd mycmd cpp myexec myexec c test py x
  • Python爬虫,私活接单记录,假日到手5500,美滋滋

    前言 每年的元旦节前后 都会是Python兼职接单的小高潮 这段时间各个行业对爬虫类的需求会暴增 圈子里很多朋友在元旦假期都没闲着 两天赚上万的不在少数 所以近来问我技术变现 兼职接单问题的朋友也特别多 我把问题总结下来 发现大部分人都有着
  • dataframe中如何筛选包含特定字符串(单个字符串、字符串列表)的列?

    里斯斯里 dataframe中如何筛选包含特定字符串 单个字符python基础教程 串 字符串列表 的列 问题描述 dataframe的某一列均为字符串格式 想筛选出含有特定字符串的行 具体实现代码如下 df df 地址 str conta
  • React循环

    import React Component from react class App extends Component constructor props super props this state str 这是react数据 num
  • golang之json注释处理

    场景 json 作为现代比较常用的文本格式 本身是不支持注释的 因为它的设计初衷是作为一种轻量级数据交换格式 只需要包含数据本身 而不应该包含注释或者其他无关的信息 但是有时json内字段较多 想写一些注释说明 这些都是编程工具或者编辑器特
  • Qt Assistant使用心得

    Qt Assistant也就是Qt助手 1 如何添加文档 编辑 gt 首选项 gt 文档 gt 添加后选择需要添加的 qch文件 qch是Qt帮助文档的格式 通常Qt的帮助文档在qt目录下ducuments文件夹里 比如我的在 opt V
  • 什么是误报?如何识别误报和漏报

    不管开发人员技能多么精通 误报和漏报总是会发生 很可能是他们的代码有某种无意的错误或漏洞 为了确保尽早发现这些编码错误和漏洞 开发人员通常使用代码静态分析工具 工具会根据开发人员设置的规则检查代码 然而 代码静态分析工具并不完美 工具有时也
  • C++总结:C++中的const和constexpr

    C 总结 C 中的const和constexpr 2014 02 18 15 31 by 付哲 10196 阅读 0 评论 收藏 编辑 C 中的const可用于修饰变量 函数 且在不同的地方有着不同的含义 现总结如下 const的语义 C
  • 编写测试用例方法之边界值分析法

    今天我们再来介绍另外一个编写测试用例的方法 边界值分析法 这个方法也是比较常用的写测试用例的方法 话不多说 开始整干货 首先 全图镇楼 之前我们也说过了 从测试点到测试用例 中间要有专业的方法 并对测试点进行扩充 然后才能详细地把测试点说清
  • 赞扬精心设计:基于属性的测试如何帮助我成为更好的开发人员

    开发人员的测试工具箱就是其中之一 很少保持不变 当然 某些测试实践已被证明比其他测试更有价值 但我们仍在不断寻找更好 更快和更具表现力的方法来测试我们的代码 基于属性的测试 对于Java社区几乎是未知的 这是Haskell员工精心制作的又一
  • 某验3空间推理验证码破解

    geetest极验空间推理验证码破解 gt 本篇文章仅供学习使用 如侵权请联系删除 某验验证码3代 4代已经是老生常谈的问题了 本篇文章粗略的分析一波3代空间推理验证码识别与验证的整个过程 yolov识别坐标 1 参数破解 从一开始gt和c
  • 【高级篇 / FortiGate-VM】(6.4) ❀ 02. 安装并启用 FortiGate VM ❀ FortiGate 防火墙

    怎么启用VMware FortiGate VM虚拟机 VMware FortiGate VM虚拟机第一次配置要怎么才能启用 首先 你需要下载到VMware FortiGate VM虚拟机文件 在D盘根目下新建一个子目录 例如FortiGat
  • 再探ROP(下)

    文章目录 0x01 概述 0x02 ret2reg 2 1 起因 2 2 原理 0x03 brop详解 3 1 概述 3 2 逆向思维切入 1 搭建环境 2 溢出长度和爆破canary 3 如何getshell 4 寻找直接条件 5 寻找间
  • 【Android开发那点破事】Android调试安装出现2个或2个以上图标

    前些日子给我们的APP添加了启动画面功能 这个在前面已经说过了 Android开发那点破事 打开APP加载页面实现 今天在用真机调试的时候 发现app安装到手机上出现了2个图标 这里先将解决方法贴出来 后面再简单分析下为什么会出现2个图标
  • vue项目使用$router.go(-1)刷新原来界面

    1 问题 我们常常需要使用 router go 1 返回之前的页面 但是却发现 之前的界面 保持着上次跳转的状态 比如说 弹框未关闭 状态未更新之类的等等 2 原因 使用 router go 1 返回 之前的数据都保留 并未刷新原来的界面
  • 渗透测试常见漏洞说明资料

    一 文件上传漏洞 1 意义 用户上传的可执行脚本文件 木马 病毒 恶意脚本 webshell等 并通过此脚本获得执行服务器的能力 2 原因 前端和服务器端过滤不严格 黑白名单设置不完善导致 一些文件上传功能实现代码没有严格限制用户上传的文件