SSRF漏洞、SQL注入、CSRF漏洞、XXE漏洞

SSRF漏洞

1.我理解的定义
攻击者将伪造的服务器请求发给一个用户,用户接受后,攻击者利用该安全漏洞获得该用户的相关信息
2.原理:
SSRF漏洞、SQL注入、CSRF漏洞、XXE漏洞_第1张图片

3.场景:

(1)分享

(2)转码

SSRF漏洞、SQL注入、CSRF漏洞、XXE漏洞_第2张图片

(3)翻译

SSRF漏洞、SQL注入、CSRF漏洞、XXE漏洞_第3张图片

(4)图片加载、下载

(5)图片、文章收藏

(6)未公开的API

4.UPL关键字:

share、wap、url、link、srcsource、target

3g、display、sourceURL、u、imageURL、domain

5.常见端口:

http 80、https 443、telnet 23、ftp 21、ssh 22smtp 25
weblogic 7001、tomcat 8080、jboss 8080、Oracle 1521、sqlserver 1443

6.SSRF可以遵守的协议:

ftp、dict、gopher、file、ladp、ssh、smb、http、https
7.file读取敏感文件
我理解的:攻击者利用任意文件读取漏洞,读取敏感文件。
网上查的:敏感文件包括日志文件,配置文件,网站源代码文件,系统文件等。
SSRF漏洞、SQL注入、CSRF漏洞、XXE漏洞_第4张图片
SSRF漏洞、SQL注入、CSRF漏洞、XXE漏洞_第5张图片
SSRF漏洞、SQL注入、CSRF漏洞、XXE漏洞_第6张图片
SSRF漏洞、SQL注入、CSRF漏洞、XXE漏洞_第7张图片

SQL注入

网上查的定义:SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。(额。。。。差不多理解了)

1.如何判断是否存在sql注入点
登录框 、查询、订单处理等地方、获取http头功能点
2.注入点查看及常见注入类型及利用方式
(1)报错注入
会出现 MySQL 查询语句报错信息
SSRF漏洞、SQL注入、CSRF漏洞、XXE漏洞_第8张图片

(2)盲注
看不到报错信息
盲注一般用到的一些函数: if() ascii() substr() length() exists() concat()
SSRF漏洞、SQL注入、CSRF漏洞、XXE漏洞_第9张图片
(3)bool 盲注
前输入信息为真 and 数字 = 数字 # 1' and 1=1# 1' and 1=2# 多改变值进行测
试 。根据报错返回的东西来确定页面字节长度条件成立或条件不成立
(4)时间盲注
=and sleep(5) --+ 延迟五秒反应
注:字符型双单引号会把单个单引号产生的报错取消,但字符型仍会报错
也有可能出现单引号过滤,进行转换等可以试试 "`)
3.猜解字段
a') order by 1# 1 开始猜解到报错 通过双写 ' 来猜解闭合
4.查询语句
SSRF漏洞、SQL注入、CSRF漏洞、XXE漏洞_第10张图片
除了查看数据库 还有会使用到的其他函数 :
1、user()查当前的用户为:user() > select user();
2、 Version();当前 mysql 的版本union select 1,2,version()
3、 Database();当前网站使用的数据库
union select 1,2,database()
4、 User();当前 MySQL 的用户
union select 1,2,user()
5、 system_user(); 系统用户名
6、session_user();连接数据库的用户名
7、current_user;当前用户名
8、load_file();读取本地文件
9、@@datadir:读取数据库路径
10、@@basedir:mysql安装路径
9、length(str) : 返回给定字符串的长度,如 length(“string”)=6
10、substr(string,start,length) : 对于给定字符串string,从start位开始截取,
截取length长度 ,如 substr(“chinese”,3,2)=“in”
substr()、stbstring()、mid() 三个函数的用法、功能均一致
11、concat(username):将查询到的username连在一起,默认用逗号分隔
concat(str1,’’,str2):将字符串str1和str2的数据查询到一起,中间用连接
12、group_concat(username) :将username数据查询在一起,用逗号连接
Columns 表存储该用户创建的所有数据库的库名、表名、字段名,要记住该表中记录数据库库
名、表名、字段名为 table_schema、table_name、columns_name
# sqlmap基本语法
**扫描语法**
1、-u 指定目标url2、-m url_list.txt # 使用一个包含多个url的文件进行扫描。
3、-r request.txt # Post提交方式,使用HTTP请求文件,该文件可从BurpSuit中导
出。 (
BurpSuit抓包 > 将请求复制到txt中即可)
4、-p "username,id" # 指定要扫描的参数
5、 - proxy="http: / 127.0.0.1:8087/" # 使用代理去扫描目标
6、 - force-ssl # 使用HTTPS连接进行扫描
7、 - delay="3" # 每次http请求之间的延迟时间,默认无延迟
8、 - timeout="10" # 请求超时时间,浮点数,默认为30秒
9、 - level
```
2:检测cookie中是否含有注入
```
```
3:检测user-agent、referer是否含有注入
```
```
5:检测host是否含有注入
```
10、 - risk 默认1,最高4,等级高容易造成数据被篡改风险
11、 - threads=7 #提高并发线程,默认为1,建议不要超过10,否则影响站点可用性
12、 - dbms="Mysql" # 指定数据库类型,还可以加上版本 Mysql
13、 - os="Windows" # 指定操作系统,还可以是Linux
**查询语法**
1. - users # 查询所有的数据库账号
2. - dbs # 查询所有数据库
3. - schema # 查询源数据库(包含定义数据的数据)如何判断是否存在sql注入点
和数据库有交互的地方
登录框
可以尝试万能密码(如何都能登录成功)
4. -a # 查询当前user、当前数据库、主机名、当前user是否是最大权限管理员、数据库账
号等
5. -D dvwa# 指定数据库
命令:sqlmap -u http: / 172.23.188.13:8083/show.php?id=3 -D dvwa
tables
-T 是查看某个数据表
columns 查看的表中的所有字段
命令:sqlmap -u http: / 172.23.188.13:8083/show.php?id=3 -D dvwa -T
users - columns
dump 查看所有字段的内容
6. - current-user # 查询当前数据库用户
7. - current-db # 查询当前数据库
8. - hostname # 查看服务器的主机名
9. - columns # 查看所有的字段
10. - tables # 查看所有的表
5.waf绕过和sqlmap使用
SSRF漏洞、SQL注入、CSRF漏洞、XXE漏洞_第11张图片

CSRF漏洞

1.定义:通过伪装成受信任用户请求受信任的网站来跨站请求伪造攻击

2.被攻击的条件:

(1)登录受信任网站A,并在本地生成Cookie

(2)在A没有推出登录的情况下,访问危险网站B

3.看图后,我理解为黑客介入用户及其信任网站之间,伪造出该网站的链接并发给用户,诱导用户访问该链接、泄露甚至修改登录账号和密码等信息

4.CSRF漏洞如何防范
1、验证 HTTP Referer 字段;
2、增加 token并验证
3、在 HTTP 头中自定义属性并验证。

XXE漏洞

1.定义:如果 Web 应用的脚本代码没有限制 XML 引入外部实体,从而导致用户可以插入一个外部实
体,并且其中的内容会被服务器端执行,插入的代码可能导致任意文件读取、系统命令执行、内网端口探测、攻击内网网站等危害。
2.XML介绍
XML 指可扩展标记语言,被设计为传输和存储数据, xml 文档包括 xml 声明、 DTD 文档类型
定义(可选)、文档元素、其焦点是数据的内容,其把数据从 HMTL 分离,是独立于软件和
硬件的信息传输工具。
XML 主要两个用途:
(1).配置文件:层级分明 结构清晰
(2). 在不同的系统之间交换数据
3.DTD
DTD , 即文档类型定义,可定义合法的 XML 文档构建模块。它使用一系列合法的元素来定义文档的结构。DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用。控制XML 的格式规范。
DTD 作用:
(1)通过 DTD ,每一个 XML 文件均可以携带一个自身相关的描述
(2)验证数据
(3)交换数据

4.XXE的危害

(1). 文件读取(2) . 内网端口扫描(3) . 命令执行
5.带外测试:
(1). 是不是 payload 写错了
(2). 是不是存在这个漏洞
(3). 有存在但是无回显
(4). 是否存在这个文件
如果:关闭了回显但是带外测试成功。
6.远程文件窃取:
(1). 读本地服务器上的文件
(2). 远程加载了恶意 DTD 文件
(3). 攻击者的服务器 开启 接收内容并写出文件

你可能感兴趣的:(服务器,网络安全)