【Audit_code】代码审计01

代码审计01

	- 基本的web代码审计
	- 对防火墙的认识
	- WAF 绕过
	- 反病毒anti-virus的绕过
	- 学习如何写渗透报告

基本的定义:

		CNVD - 国家安全的漏洞数据库(通用性的中危以上的漏洞 或者使敏感机关的中高危以上的事件)
		黑盒 -  看不到源代码 (后端语言 php javascript)
		白盒 - 可以看到相应的代码

1.信息安全法律法规

信息社区 : tools, 先知社区, 零组(资料文库)
  1. 明确违法的边界,明确绝对不能做的事情
  2. 明确在挖洞时候需要明确的敏感边界

绝对不要
1. 侵入计算机系统
2. 破坏计算机信息系统罪

  • 出售信息 3年
  • 非法侵入国家事务,及技术领域 3年
  • 非法侵入计算机系统 (情节严重
    1 :10组信息以上 3- 7 年
    2: 造成经济损失)
  • 提供专门用于计算机信息的程序,工具, 依照前款的规定处罚
  • 具有避开或者突破计算机的信息安全保护措施(绕过waf),免杀,注入
  • 对企业实际的控制人,能不抓就不抓

2.统一资源定位符 URL

URL链接里,每一个格式正确且符合规范的URL都对应着互联网中唯一的资源

2.1. URL格式

url格式
scheme - 用于传输的协议,最常见的是http(80)协议
常用的协议 :ftp(20,21) file, http(80), https(443), mailto(SMTP)…
login:password - 登录名密码
address:port - 服务器地址 端口
/path/to/resource - 层级文件路径
?query_string - 查询字符串
#fragment - 片段ID,在客户端,不会回传至服务端,通常应用于锚点

2.2 PHP 开发环境搭建工具
  1. phpStudy

     Apache/Nginx+PHP+MySQL+phpMyAdmin+ZendOptimizer+OpenSSL
    
  2. WampServer

     WampServer 就是 Windows、Apache、Mysql、PhpMyadmin、SqlBuddy、XDebug PHP 集成安装环境,即在 window 下的 apache、php 和 mysql 的服务器软件。
    
  3. XAMPP

     XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包
    
  4. MAMP

     macOS、Apache、MySQL 或 MariaDB 和 PHP,Perl 或 Python。
    
  5. IIS

     微软公司提供的基于运行 Microsoft Windows 的互联网基本服务
    
  6. 宝塔面板

     LAMP/LNMP/Tomcat/Node.js),一键部署 SSL
    
  7. UPUPW

     Windows 平台下最具特色的 Web 服务器 PHP 套件,包括 Apache 版、Ngix 版和 Kangle 版:Apache/Nginx+PHP+MySQL+phpMyAdmin+Xdebug+Memcached+eAccelerator+ZendGuardLoader/Optimizer
    
2.3. PHP报错类型及区别 (实验1)
  1. NOTICE(注意) :比较小的错误,比如访问违背定义的变量,且不会影响运行结果
<?php 
	$input = $_GET['input'];
	echo $input."<br>";
?>

并且访问

// hh.php
www.localhost.com/文件夹名/文档名.php

NOTICE

  1. Warnings(警告)
    稍微严重一点的错误,比如包含了一个本身不存在的文件,但不会终止文件运行
    warming
  2. Fatal errors (致命错误)
    初始化一个根本不存在的类的对象,或调用一个不存在的函数,程序停止运行。
    fatal error
2.4. PHP系统函数
<?php
	var_dump($_SERVER); //打印服务器信息,是个数组
?>

系统信息

2.5. 获取完整URL信息的函数:

request_uri
并且查看页面信息在Chrome里 F12 —> Network
查看信息

2.6. URL 编码

此处 %20 是空格的编码
在这里插入图片描述

URL只能使用英文字母、阿拉伯数字和某些标点符号,不能使用其他文字和符号。
! 中文使用的编码是 Unicode,UTF-8

3. HTTP协议

HTTP 超文本传输协议 是基于TCP/IP(传输层协议) 的应用层协议。定义了浏览器和万维网之间的通信规则。
在这里插入图片描述
HTTP 由请求和响应构成,且是一个标准的的 CS模型(client–server), 是一个无状态协议(每个请求都是完全独立的,每个请求包含了处理这个请求所需的完整的数据,发送请求不涉及到状态变更).

3.1 HTTP特点
  1. 简单快速(服务器的程序规模小,通信速度快)
  2. 灵活(允许传输任意类型的数据对象,且由content_Type加以标记)
  3. HTTP1.1使用持续连接(一个连接可以传输多个连接对象,节省了传输时间),而0.9和1.0使用非持续性连接,服务器处理完了请求之后,收到客户的应答之后再断开连接。
  4. 无状态,对事务没有记忆能力
  5. 支持BS和CS模式
3.2. 实现过程

一次事务分为4步

  1. 客户与服务器建立连接(单击某个超链接)
  2. 客户机发送一个请求(包括 URL 协议版本号 MIME信息 修饰符 客户信息 可能的内容)

MIME (Multipurpose Internet Mail Extensions) 是描述消息内容类型的因特网标准。 MIME 消息能包含文本、图像、音频、视频以及其他应用程序专用的数据

  1. 服务器接到请求后,给予相应的响应信息( 协议版本号 状态代码 MIME信息 实体信息)
  2. 客户端接受信息,并解析显示页面,客户机与服务器断开连接
3.3. HTTP状态码
分类分类描述
1**信息,服务器收到请求,需要请求者继续执行操作
2**成功,操作被成功接收并处理
3**重定向
4**客户端错误
5**服务器错误
3.4. HTTP请求

请求行 ----- 请求头 ------ 请求主体
在这里插入图片描述
Header : =客户机请求的服务器主机名,客户机的环境信息等
Host : 主机名称
User-Agent : 浏览器或生成请求的其他客户端软件有关的信息
Accept : 客户端愿意接受哪些内容,如图像类型
Accept-Language : 服务器浏览器支持的语言
Accept-Encoding : 客户端愿意接受的内容编码
Origin : 这个消息头用在跨域Ajax请求中,只存在于POST请求
Referer :指示提出当前请求的原始URL。
Cookie :服务器向客户端发送的其他参数
Connection :通知通信的另一方,是否在完成HTTP传输后关闭TCP连接。
If-Modified-Since :浏览器最后一次收到所请求的资源的时间。
Date :告诉服务器,当前请求的时间

3.5. HTTP响应
  • 使用http版本
  • 请求结果的数字状态码
  • 请求结果
    在这里插入图片描述
    Date : 响应返回的时间,GMT(格林威治时间)
    Server : 提供所使用的Web服务器软件的相关信息
    Set-Cookie : 用于向浏览器发布cookie,浏览器会在随后的请求中将其返回给服务器
    Vary: Accept-Encoding : 告诉代理服务器缓存两种版本的资源:压缩和非压缩
    Expires : 向浏览器说明消息主体内容的有效时间。
    Connection : 告诉通信的另一端,在完成HTTP传输后是关闭TCP连接,还是保持连接开放以接收其他消息。
    Content-Type : 规定消息主体的内容类型
    Cache-Control : 向浏览器传送缓存指令。
    Content-Length : 规定消息主体的字节长度。
3.5. HTTP方法

HTTP1.0 : GET, POST 和 HEAD方法。
HTTP1.1 新增:OPTIONS, PUT, DELETE, TRACE 和 CONNECT

  1. GET, 获取资源。
  2. POST,执行操作。
  3. HEAD,与GET方法相似,不同之处在于服务器不会在其响应中返回消息主体。
  4. TRACE,用于诊断。服务器应在响应主体中返回其收到的请求消息的具体内容
  5. OPTIONS, 要求服务器报告对某一特殊资源有效的HTTP方法
  6. PUT, 向服务器上传指定的资源 !不安全
  7. DELETE, 请求服务器删除指定的页面 !不安全
3.6. 三次握手

客户端主动向服务器发送SYN
服务器接受客户端包,返回一个SYN+ACK
客户端在返回一个ACK

4.BurpSuite的使用

4.1.Proxy模块

在这里插入图片描述
Proxy配置【option】

  1. 修改Proxy的监听端口,此处我们使用8181
    在这里插入图片描述
  2. 配置浏览器的代理
    在这里插入图片描述
    在这里插入图片描述
  3. 配置Intercept Server Responses【截断服务器响应】
    对于监听截断进行过滤,根据不同的条件进行筛选
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

4.2.Target

显示出访问过的、以及页面中有的链接URL。黑色是发生过通信的,灰色是爬虫过的,但没有访问过的。根据Filter配置过滤规则
在这里插入图片描述
add to scorp 添加对象到目标范围
在这里插入图片描述
在这里插入图片描述

4.3.Intruder【用于跑字典和暴力破解】
  • 小型模拟登陆验证
<?php 
$username =$_GET['username'];
$password=$_GET['password'];
if($username== 'admin'&& $password==123456){
	echo 'success';
}
?>

访问
/ss?username=admin&password=123456
在这里插入图片描述
Target - 攻击目标细节
Postion - 修改payload fuzz (尝试)测试- Payload (添加载荷) 开始攻击

			4种攻击类型
				-	 clunster bomp
				-	  sniper
Sniper 狙击手

( 只有一个有效载荷集, 轮流的把载荷插入相应位置)
在这里插入图片描述
在这里插入图片描述

Battering ram 攻城模式

将一个可能性插入所有位置
在这里插入图片描述

Pitchfork 草叉
  • 对每个载荷设置独一无二的集合并且一一对应,请求数取集条目数最小。 实际应用较小,我们并不知道哪个用户对应哪个密码
    -
Cluster 排列组合

有几个有效载荷,就需要几个集合,排列组合实现所有可能性

1. 普通的用户名密码破解

在这里插入图片描述

2. MD5加密密码的破解

! 一般前端MD5加密 (不可逆)
加密学复习
对称加密
非对称加密

MD5加密算法:http://blog.csdn.net/huangxiaoguo1/article/details/78042596

Base64加密解密:http://blog.csdn.net/huangxiaoguo1/article/details/78042715

异或加密解密:http://blog.csdn.net/huangxiaoguo1/article/details/78042802

DES加密解密:http://blog.csdn.net/huangxiaoguo1/article/details/78042908

AES自动生成base64密钥加密解密:http://blog.csdn.net/huangxiaoguo1/article/details/78043000

AES加密解密(ECB模式):http://blog.csdn.net/huangxiaoguo1/article/details/78043098

AES加密解密(CBC模式):http://blog.csdn.net/huangxiaoguo1/article/details/78043169

非对称RSA加密解密:http://blog.csdn.net/huangxiaoguo1/article/details/78043354

#hash碰撞
不同字符串hash加密后hash值一样
哈希碰撞解释


当前端页面对密码进行加密时,由于数学算法不可逆,我们一般使用碰撞,或者提前处理(使用相应的加密方式)字符串,再进行爆破

用自带的方法进行字符串处理
在这里插入图片描述

3. 带特殊前缀的用户名破解

在这里插入图片描述
在这里插入图片描述

4. 数字的遍历破解
<?php 
$get_code =$_GET['get_code'];
if($get_code== '1155'){
	echo 'success';
}else{
	echo 'false';
}
?>

在这里插入图片描述
在这里插入图片描述
(Throttle -摆动时间, 模拟正常人点击与延时)
在这里插入图片描述

4.4.Repeater【重复模块】

实现同一个包的修改,可以修改各种参数从而得到不一样的响应
在这里插入图片描述
在这里插入图片描述

4.5.Decoder 解码

在这里插入图片描述

在这里插入图片描述

4.6.Compaper

在这里插入图片描述
在这里插入图片描述


截取每个响应包

在这里插入图片描述
----复现1 结果-----
在这里插入图片描述
Extender 插件商店
Bapp store —插件商店以及评分等级和下载次数
在这里插入图片描述
配置jython

在这里插入图片描述
CO2 的作用 集成的sqlmap

Burp APIS ----自己开发插件

------------intruder----用于遍历和暴力破解-------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值