网络安全-Web应用安全5
Web应用安全XXE漏洞XML基础什么是XML?
一种类似于HTML(超文本标记语言)的可扩展标记语言,可以用来标记数据、定义数据类型
XML语言没有预定义的标签,允许用户自定义标签和文档结构
XML被设计用来传输和存储数据
XML文档结构
XML声明
DTD文档类型定义(可选)
文档元素
XML案例1234567<?xml version="1.0" encoding="UTF-8"?><girl age="18"> <hair>长头发</hair> <eye>大眼睛</eye> <face>可爱的脸庞</face> <summary>可爱美丽的女孩</summary></girl>
XML的语法规则
XML文档必须有一个根元素
XML元素都必须有一个关闭标签
XML标签对大小敏感
XML元素必须被正确的嵌套
XML属性值必须加引导
DTD与DTD实体DT ...
网络安全-Web应用安全4
Web应用安全PHP文件包含漏洞文件包含概念什么是文件包含?
在各种开发语言中都提供了内置的文件包含函数,可以使得开发人员在一个代码文件中直接包含(引入)另外一个代码文件
由于文件包含可以达到复用和方便修改的目的,在代码设计中常常使用
大多数情况下,文件包含函数中包含的代码文件是固定的
文件包含漏洞什么是文件包含漏洞?
如果文件包含的代码文件被设计为一个变量,且这个变量可以由前端用户设置,这种情况下,如果没有做足够的安全过滤设置,则可能会引发文件包含漏洞
攻击者可以设置一个“意想不到”的文件让包含函数去执行,从而造成恶意操作
文件包含漏洞分类根据不同的配置环境,文件包含漏洞分为如下两种情况
本地文件包含漏洞
远程文件包含漏洞
本地文件包含漏洞
仅能够对服务器本地的文件进行包含,该情况下,攻击者更多的会包含一些固定的系统配置文件,从而读取系统敏感信息
本地文件包含漏洞会结合一些特殊的文件上传漏洞,从而形成更大的威力
远程文件包含漏洞
能够通过url地址对远程的文件进行包含,这意味着攻击者可以传入任意的代码
在web系统的功能设计上尽量不要让前端用户直接传变量给包含函数,即使 ...
网络安全-Web应用安全3
Web应用安全RCERCE概念远程命令/代码执行
全称Remote Command/CodeExecute,远程命令/代码执行
通过构造特殊字符串,将数据提交至Web应用程序,并利用该方式执行外部程序或系统命令实施攻击
RCE的原理
Web应用程序使用了一些可以执行系统命令或代码的函数,而且对用户提交的数据过滤不严格,导致黑客利用服务器可以执行命令或代码
eval()函数语法
eval(string $code):mixed
说明
将字符串作为PHP语句来执行
该字符串必须是合法的PHP代码,且以分号作为结束
123<?php eval("echo (2+2)");?>
assert()函数语法
assert(mixed $assertion, string $description =?):bool
说明
检查一个断言是否为 false
如果assertion 是字符串,它将会被assert()当做 PHP代码来执行
12345<?php $num=100; $ret=asse ...
网络安全-Web应用安全2
Web应用安全CSRF跨站请求伪造CSR概念什么是CSRF跨站?
全称是Cross-Site Request Forgery,中文跨站请求伪造
CSRF原理
黑客利用已经登录的用户,诱导其访问或登录某个早已构造好的恶意链接或者页面,然后在用户毫不知情的情况下,以用户名义完成了非用户本意的非法操作
CSRF攻击流程
CSRF实例打开pikachu靶场,选中右侧导航栏中的CSRF
通过页面右上角的提示,可以获取用户名称和密码
登录后,修改用户信息,点击提交,获取提交的url
攻击者获取修改信息的URL后,就可以构造出CSRF攻击的URL
攻击者获取修改信息的URL后,就可以构造出CSRF攻击的URL例如:将kobe的性别修改为girl
将以下url放到某个其它网站上,引诱被攻击者点击
如果被攻击者此时登录状态或cookie/session没有过期,则信息被修改
注意:实际的IP地址是对应的被攻击的网站的IP
CSRF防御实例增加token的验证的页面
增加token的验证,页面部分代码
修改信息后,点击submit按钮后抓包,连同token一起提交修改 ...
网络安全-Web应用安全1
Web应用安全Web安全概述Web安全现状Web安全统计数据
据全球知名IT调研与咨询服务公司Gartner的最新调查,信息安全攻击有75%都是发生在Web应用而非网络层面上。同时,数据也显示,三分之二的Web站点都相当脆弱易受攻击。
Web安全事件CSDN网站六百万用户信息外泄
2011年12月21日,黑客在网上公开了CSDN的用户数据库,高达600多万个明文的注册邮箱账号和密码遭到曝光和外泄,成为中国互联网历史上一次具有深远意义的网络安全事故。
12306信息泄露
中国铁路公安机关证实,2014年12月25日犯罪嫌疑人蒋某某、施某某通过”撞库”方式非法获取12306用户数据。如今犯罪嫌疑人落网,但超过13万条12306用户账号密码已经在网上公开传播。
东方航空支付漏洞
中国东方航空股份有限公司支付系统验证漏洞可以1元认购10000积分(价值2500RMB)
Web体系结构图
Web体系漏洞图
OWASP TOP10什么是OWSAP?
全称Open WebApplication Security Project,开放Web软件安全项目
一个开源的、非盈利的全球性安全 ...
网络安全-SQL注入3
SQL注入Burp Suite辅助手工注入Burp Suite介绍Burp Suite 是用于攻击web 应用程序的集成平台,包含了许多工具
Proxy:代理器,拦截、查看、修改原始数据流
Intruder:攻击器,对web应用程序进行攻击
Repeater:中继器,修改、重发HTTP请求
Decoder:解码器,智能解码编码的工具
Comparer:对比器,信息差异比较工具
安装Burp Suite
安装和配置java环境
激活Burp Suite pro
运行Burp Suite
配置Firefox代理服务器安装FoxyProxy组件
添加代理服务器
IP地址:127.0.0.1
端口:8080
启用代理上网
回顾:手工猜解当前数据库名猜解数据库长度
1?id=48 and length(database())=n -- +
猜解数据库名称第一个字母
1?id=48 and ord(substr(database(),m,1))=n -- +
使用Burp Suite猜解数据库长度使用Intruder模块,自动替换n的值
1?id=48 and length(d ...
网络安全-SQL注入2
SQL注入手工普通注入按注入位置分类
GET注入:注入字符在URL参数中
POST注入:注入字段在POST提交的数据中,如“姓名”输入框
Cookie注入:注入字段在Cookie数据中
其他注入:HTTP请求的其他内容触发的SQL注入漏洞
按参数类型分类数字型注入:输入参数为整型时,如id、页码等
字符型注入:输入参数为字符串时,如姓名、地址等
字符型注入一般要用单引号或双引号进行闭合
按结果反馈分类普通SQL注入
网页会展示来自数据库服务器的错误信息,提示SQL语法不正确等
一般在页面上直接显示执行SOL语句的结果
SQL盲注
网页上一般不会直接返回具体的数据库错误或语法错误
一般在页面上不会直接显示SQL语句执行的结果
普通SQL注入思路普通SQL注入:执行注入SQL语句将敏感信息展示出来,并进行进一步的操作
判断是否存在注入点(字符型、数字型)
猜解SQL查询语句中的字段数
确定显示的字段位置
获取当前数据库
获取数据库中的表
获取表中的字段名
下载数据(脱库)
操作方法:联合查询、报错注入
SQL盲注思路SQL盲注不会展现任何数据库报错内容,需要构造真或假的问 ...
网络安全-SQL注入1
SQL注入SQL注入原理SQL注入本质SQL注入利用Web应用对后台数据库查询语句处理时存在的安全漏洞
设计程序时忽略了对某些字符串的检查
原本程序要执行的代码,拼接了用户输入的数据(嵌入指令)
SQL注入攻击流程第一步:注入探测
自动方式:使用web渗透测试工具,自动探测
手动方式:手工构造SQL注入测试语句
第二步:信息获取
环境信息:数据库类型,数据库版本,操作系统版本,用户信息等
数据库信息:数据库表,表字段,字段内容等(加密内容破解)
部署SQL注入靶场安装Web安全渗透测试靶场Pikachu、SQLi-Labs、news
MySQL基础操作和常用函数连接数据库服务器连接本机数据库服务
mysql [-u 用户名] [-p 密码]
列出有哪些数据库查询当前MySQL服务器上有哪些数据库
SHOW DATABASES;
选择数据库管理数据库中的表格之前,可以先进入到目标数据库
USE 库名
12mysql> use pikachu;Database changed
列出数据库中有哪些表进入指定数据库以后,可以查询数据库中有哪些表格
...
网络安全-Web应用基础6
Web应用基础PHP表单PHP超级全局变量什么是PHP超级全局变量
PHP中预定义了几个超级全局变量(super globals)
在一个脚本的全部作用域中都可用,不需要特别说明,就可以在函数及类中使用
PHP接收表单数据$_GET、$POST和$_REQUEST
$POST接受所有以post方式发送的请求
$_GET接受所有以get方式发送的请求
$_REQUEST接受get和post方式发送的请求,但是比较慢
表单get请求表单提交方式为get请求
创建login.html,关键内容如下
123456<meta charset="utf-8"><form action="login.php" method="get"> 账户:<input type="text" name="uname"> 密码:<input type="password" name="pwd"> & ...
网络安全-Web应用基础5
Web应用基础走进PHP编程世界PHP简介PHP全称是Hypertext Preprocessor,超文本预处理器
PHP是一种创建动态交互性站点的开源语言
在服务器上执行
网络安全最常用方案以PHP为范本
PHP文件PHP文件是什么?
PHP文件可包含文本、HTML、JavaScript代码和PHP代码
PHP代码在服务器上执行,结果以纯HTML形式返回给浏览器
PHP文件的默认文件扩展名是”.php”
第一个PHP程序在浏览器上输出文本”Hello World”
123<?php echo "Hello World!"?>
必须把PHP代码放置在标签之间
PHP中的每个代码行都必须以分号结束
在浏览器输出文本的指令:echo 和print
大小写敏感
注释
单行://
多行:/* */
PHP语法变量PHP 没有声明变量的命令,变量在第一次赋值时被创建
1$num = 100;
变量创建时不需要指定数据类型,以赋值为准
12$num = 100;$name = "张三" ...