渗透与防御技术
时间:2022-12-21 00:30:00
工具总结
一、资产收集
1、GOBUSTER
ali Linux一种默认安装的暴力扫描工具。
2、ksubdomain
基于无状态子域名爆破工具
3、oneforall
强大的子域收集工具
4、dirsearch
基于python高级命令行工具, 旨在对web暴力破解服务器中的目录和文件。它和我们通常使用的一样dirb、皇家剑和其他工具是为了扫描网站的敏感文件和目录,以找到突破,看看是否有隐藏的目录
5、feroxbuster
目录探测工具用暴力和字典搜索目标目录中未链接的内容
6、masscan
它被称为最快的互联网端口扫描仪
7、nmap
主要用于服务器端口开放检测、端口服务指纹识别、漏洞检测
8、nikto
Nikto是开源的(GPL)网页服务器扫描器,它可以对网页服务器进行全面的多种扫描
二、暴力破解
1、medusa
支持各种协议密码破解的开源暴力破解工具
2、Hydra
自动爆破工具
三、漏洞检测
1、searchsploit
存储大量的漏洞利用程序可以帮助安全研究人员和渗透测试工程师更好地进行安全测试。目前,它是世界上最完整的数据库
2、nikto
轻量化漏洞探测工具
wfuzz
四、提权
1、linpeas
全平台系统提供辅助工具
Kali操作系统的基本配置和使用
一、安装
下载KALI操作系统
https://www.kali.org/get-kali/
二、修改root
sudo passwd
三、介绍基本工具
- 信息收集工具集:
- 主要面向网络、端口、服务识别web指纹等一系列目标信息检测工具,常用工具nmap masscan gobuster (zmap OneForAll)
- 漏洞分析工具集:
- 主要面向漏洞的发现、漏洞分析类的工具,漏洞主要面向系统、web、网络设备,常用工具 nikto
- web程序渗透测试工具集:
- 主要面向web常用的工具有漏洞发现、漏洞挖掘和漏洞利用burpsuite、sqlmap等,(AWVS-windows)
- 密码攻击工具集:
- 主要针对在线或离线密码攻击,一般对远程服务进行暴力破解攻击,常用工具medusa、john等
- 漏洞使用工具集:
- 主要面向渗透操作,主动或被动攻击目标,以获得目标设备的权限或破坏目标。常用工具metasploit、beef
四、升级操作系统
-
配置源
vim /etc/apt/sources.list
-
更新软件列表
apt-get update
-
更新软件
apt-get upgrade
-
更新内核
apt-get dist-upgrade
五、安装SSH服务
1、命令
apt-get install openssh-server
修改配置文件
vim /etc/ssh/sshd_config PermitRootLogin yes
3、配置SSH服务
ervice ssh start #开启ssh服务 /etc/init.d/ssh start #开启ssh服务 /etc/init.d/ssh stop #关闭ssh服务 /etc/init.d/ssh restart #重启ssh服务 update-rc.d ssh enable #自启动服务
4、测试
-
Windows连接
ssh root@IP地址
5.安装相关软件
apt-get install lrzsz #安装ssh文件传输工具 sz 文件名 #文件可以发送到PC端 apt-get install wordlists # 安装基础字典
6、问题
-
Permission denied, please try again.
-
原因:未开启权限
-
解决方法:
vim /etc/ssh/sshd_config PermitRootLogin yes
-
自动化渗透工具介绍
1、信息搜集(全面了解系统)
网络信息(DNS、IP、端口)、服务器信息(操作系统、版本、服务)、中间件(版本)、
WEB系统信息(使用技术、部署系统、数据库)、第三方软件(版本)、
社工记录(个人邮件地址、泄露账号密码、历史网站信息)
2、漏洞利用(占领根据地)
web漏洞发现、系统漏洞发现、漏洞利用、编写自动漏洞利用脚本、放置隐蔽后门(正常软件漏洞)
3、横向扩展(扩大成果,深度挖掘)
内网架构分析、攻陷信息中心和数据中心、突破认证服务器(AD域)、
内网中间人攻击(获取单点信息)、多级多点后门驻留、长期监视、深度隐蔽
DNS信息收集
- 通过
Ping
服务可以探测网站有那些资产 - 资产:设备、硬件、IP地址等
一、Kali常用域名字典
- 安装
apt-get install dirbuster
apt-get install seclists
- 使用
cd /usr/share/seclists/Discovery/DNS/subdomains-top1million-20000.txt
二、GOBUSTER
-
灵活快速,适合初级分析
-
这款工具基于Go编程语言开发,广大研究人员可使用该工具来对目录、文件、DNS和VHost等对象进行暴力破解攻击。
-
探测域名,不参与探测服务识别
1、软件安装
apt-get install gobuster
2、使用方法
Usage:
gobuster dns [flags]
Flags:
-d, --domain string #指定目标域名
-h, --help #打印帮助信息
-r, --resolver string #指定DNS服务器
-c, --showcname #显示CNAME记录
-i, --showips #显示域名IP
--w, # 指定字典,自动替换
--t, # 线程
--o # 导出成为文件
--timeout duration #设置超时时间 (默认 1s)
--wildcard #DNS通配符检测(绕过泛解析)
# 探测时间不要超过1分钟
3、实例
gobuster dns -d douyin.com -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-20000.txt -i -t 20 -o /tmp/test.txt
三、ksubdomain
- 速度比goubuster更快
- 异步发送接受
- 批量发送,监听接收判断
四、oneforall
- 长期监控,对比差异
1、 🚀介绍
OneForAll是一款功能强大的子域收集工具
https://gitee.com/shmilylty/OneForAll#oneforall
2、 🎉安装步骤
-
下载
git clone https://gitee.com/shmilylty/OneForAll.git 或 git clone https://github.com/shmilylty/OneForAll.git
-
安装
cd OneForAll/ python3 -m pip install -U pip setuptools wheel -i https://mirrors.aliyun.com/pypi/simple/ #kali不需要 # requirements.txt 自动安装Python组件列表 pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ python3 oneforall.py --help # 安装成功
-
更新
git stash # 暂存本地的修改 git fetch --all # 拉取项目更新 git pull # 下载覆盖 git stash pop # 释放本地修改
3、 ✨使用演示
python3 oneforall.py --target example.com run
/tmp/OneForAll/results # 结果路径
python3 oneforall.py --target csdn.net run
┌──(root💀yyb)-[/tmp/OneForAll/results]
└─# ls
csdn.net.csv massdns.log oneforall.log result.sqlite3 temp
五、CDN攻防对抗
1、概念
CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。
CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。
CDN的基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。
2、CDN查找真实IP
①、通过FOFA查询
domain="mozhe.cn"
在通过IP查看是否有其他域名,如果有的话则为CDN
②、通过证书查询
③、查询子域名
- 查看IP地址
④、超级Ping
多个地点Ping服务器,网站测速 - 站长工具 (chinaz.com)
⑤、nslookup
- 有CDN
C:\Users\Yang>nslookup www.mozhe.cn
服务器: XiaoQiang
Address: 192.168.31.1
非权威应答:
名称: pa3f1qto.slt.sched.tdnsv8.com
Addresses: 183.204.68.74
120.221.218.159
183.204.1.157
Aliases: www.mozhe.cn
www.mozhe.cn.cdn.dnsv1.com.cn
- 无CDN
C:\Users\Yang>nslookup www.aa.com
服务器: XiaoQiang
Address: 192.168.31.1
非权威应答:
名称: www.aa.com
Address: 23.74.241.217
⑥、网站邮件订阅查找
-
在网站上给自己的账号发送邮件
-
查看邮件详细信息
- 163为查看信头
- qq邮箱查看原文
通过www.mozhe.cn发送给qq.com在通过网关发送到指定邮箱
-
如果此IP不可以直接进入,则可以修改本地Host文件,指定DNS解析
Windows: C:\Windows\System32\drivers\etc\hosts Linux: /etc/hosts 添加 42.193.4.222 www.mozhe.cn 再次ping,则发现解析为42.193.4.222
-
浏览器访问www.mozhe.cn,则绕过CDN
资产收集工具
一、Goby工具
1、工具介绍
基于资产自动识别的图形化工具,目前有免费版和红队版,支持对服务的识别和漏洞扫描
2、下载地址
https://cn.gobies.org/
3、插件安装
https://npcap.com/dist/npcap-1.60.exe
4、工具使用
端口服务信息收集
一、🥪Nmap介绍
- 主要面向服务器端口开放情况探测、端口服务指纹识别、以及漏洞探测
二、🥩安装
apt-get install nmap
三、🍿使用方法
端口探测:
nmap 192.168.11.0/24 探测本地网络24掩码网段端口开放情况
-sC 进行脚本探测
-sV 对服务进行版本识别
-vv 显示更多的过程日志
-p- 全端口探测 等同于 -p 1-65535 -p 123,222,111-222
-Pn 无需ping通直接探测
-n 不进行IP反解析
--min-rate 2000 进行最小传输带宽配置
作业二:
探测内网IP端口开放情况,并进行分析
nmap -sC -sV 192.168.52.1 -vv --min-rate=2000 -Pn -n
四、🍖演示
┌──(root💀yyb)-[~]
└─# nmap 192.168.184.133 -sC -sV -p 22 -vv -n
Web的指纹分析
一、Web服务器的类型
- 更改网页大小写,确定是Winodws还是Linux
- 如果出现404,则代表使用的是Linux服务器
- 如果可以正常返回,大概率为Winodws
二、Web中间件
- tomcat
- apache
- iis
- nginx
三、Web使用的语言
-
php(apache)
-
jsp(tomcat)
-
aspx(iis - Winodws)
-
js
-
python
-
可以利用index加后缀来判断
四、Web系统的类型
- thinkphp
- dedecms
五、Web目录、隐藏的页面文件
五、Web目录、隐藏的页面
Web漏洞扫描工具
一、手动漏洞扫描工具burpsuite
BurpSuite全套使用教程(超实用超详细介绍)_告白热的博客-CSDN博客_burpsuite教程
- 浏览器访问Web服务的话,如果直接在网卡抓取数据,抓取到的数据都是加密的。
- 所以通过Burpsuite做代理,数据经过Burpsuite转发,可以抓取到明文的数据
- 也可以重发数据包,修改数据,做为测试使用
1、安装Java14
-
检查是否安装了Java环境
java -version
-
将java14 解压缩到C盘目录下
-
将Java的运行程序目录复制下来,配置到环境变量path中 C:\Program Files\jdk-14.0.2\bin
2、注册burpsuite
-
在Burpsuite目录下打开开cmd
-
在命令行下执行
java -jar Loader.jar
-
双击burp.bat 打开软件
-
拷贝生成的序列号到burpsuite主程序注册页面中
-
然后选择手工激活,拷贝第二段注册码粘贴到loader中
-
然后在loader中拷贝第三段序列号,添加到burpsuite主程序中,然后激活
-
激活成功后,在进入软件,则不需要之前的激活步骤了
-
注意
- 关闭截断
3、安装Firefox
- 安装proxy插件(foxyproxy)
- 配置一个代理,然后测试是否可以与burpsuite联动
4、安装证书
- 在代理模式下,访问http://127.0.0.1:8080
- 下载证书
- 在浏览器中添加证书信任
5、测试
Web漏洞靶场环境搭建
一、PHPStudy
1、官方网址
https://www.xp.cn/
2018版本
2、安装
-
下载PHPStudy
-
下载运行库
- Vc09
- Vc11
- Vc14
-
启动
网络都设置为允许访问
-
访问127.0.0.1
3、配置靶机
- 部署DVWA和pikachu
①、配置pikachu
D:\GongJu\phpStudy\PHPTutorial\WWW
建立文件夹防止默认文件
将DVWA和pikachu解压到此文件夹
此时访问127.0.0.1会发现没有内容
配置PHPStudy
初始化pikachu
D:\GongJu\phpStudy\PHPTutorial\WWW\pikachu\inc\config.inc.php
配置数据库密码
root
root
测试:如果查询成功,则证明成功连接
②、配置DVMA
D:\GongJu\phpStudy\PHPTutorial\WWW\DVWA\config
Copy一份config.inc.php,并去掉后缀,编辑Copy后的文件
修改账号密码
配置为Enable
修改配置
allow_url_include = On
重启后才会生效
登录
root
password
4、修改
-
修改端口
Web数据包结构讲解
一、请求方法
1、GET
GET /Pikachu/vul/burteforce/bf_form.php HTTP/1.1
Host: 192.168.184.1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:100.0) Gecko/20100101 Firefox/100.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Referer: http://192.168.184.1/Pikachu/
Cookie: PHPSESSID=n4pbq7kea30043g29bdqm7iar7
Upgrade-Insecure-Requests: 1
2、POST
POST /Pikachu/vul/burteforce/bf_form.php HTTP/1.1
Host: 192.168.184.1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:100.0) Gecko/20100101 Firefox/100.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 43
Origin: http://192.168.184.1
Connection: close
Referer: http://192.168.184.1/Pikachu/vul/burteforce/bf_form.php
Cookie: PHPSESSID=n4pbq7kea30043g29bdqm7iar7
Upgrade-Insecure-Requests: 1
包含登录信息
username=admin&password=123456&submit=Login
3、区别
参考:https://www.runoob.com/tags/html-httpmethods.html
4、重发操作
二、发送数据
- 请求方法: GET POST PUT
- URL:访问网站的页面
- HOST: 主机网络地址 可能是IP 可能是一个域名
- User-Agent:浏览器特征
- Referer:网页跳转来源
- Cookie: 一般会保存登录状态信息
- Body:在post请求方法下,传输参数的位置
三、接收数据
- 状态码:200 404 301 302 500
- https://www.cnblogs.com/cjwxf/p/6186287.html
- body:返回的html代码
Burpsuite使用
一、模块介绍
1、Dashboard(仪表盘)
- Tasks(会话)
- Log(日志)
- Issue(漏洞提示)
2、Target(目标)
- map(网站地图)
- scope(范围)
- issue(漏洞解释说明)
3、Proxy(代理模块)
- Intercept(拦截功能)
- 可以进行数据的拦截修改
- 然后选择Forward或Drop
- 形成截断----修改----发送的过程
- history(历史记录)
4、Repeater(重发模块)
-
重新修改发送参数-然后重发给服务器
5、Intruder(批量重发-暴力破解)
- postitions 定义需要变化的位置
- payload 定义具体的变化值
- pool 配置从发策略,例如并发数、延时、超时
- options 配置,一般不需要更改
-
增加变化值位置
-
探测方法
-
Sniper:只有一个探测点时使用
-
Battering ram:多个探测点的时候使用(同一个字典不同位置替换相同的字符)
-
Pitchfork:多个字典替换多个位置
-
字典1 aaa bbb ccc 字典2 123 456 789 0543 /* 只会匹配三条 字典1的第一条与字典2的第一条 字典1的第二条与字典2的第二条 字典1的第三条与字典2的第三条 */
-
-
Cluster bomb:字典一的第一个值和字典二的所有值进行匹配(笛卡尔积)
-
-
指定变量值
-
Payloads
-
-
修改速度和并发
-
Resoure pool
-
-
演示
- 成功爆破出密码
-
可以添加关键词选项,就会多一个下拉框,添加方法和添加密码相同
6、Decoder(解码编码模块)
- Decode:解码
- Encode:编码
7、Comparer(页面对比模块)
8、Extender(扩展模块)
弱口令漏洞攻击与验证码绕过
一、基于远程服务的弱口令攻击
1、常见的易攻击服务
- smb
- ssh
- rdp
- ftp
- proxy
- mysql
- sqlserver
- oracle
2、特征
- 远程管理服务
- 具有账号密码验证机制
- 没有其他防护措施
3、防护手段
- 防火墙进行访问限制
- 密码登录策略
- 统一登录管理
4、攻击方法和软件
-
探测当前网段有那些开启的IP
netdiscover -r 192.168.184.0/24 Currently scanning: Finished! | Screen View: Unique Hosts 12 Captured ARP Req/Rep packets, from 4 hosts. Total size: 720 _____________________________________________________________________________ IP At MAC Address Count Len MAC Vendor / Hostname ----------------------------------------------------------------------------- 192.168.184.133 00:0c:29:a0:ad:40 4 240 VMware, Inc. 192.168.184.2 00:50:56:f8:49:8c 2 120 VMware, Inc. #网关 192.168.184.1 00:50:56:c0:00:08 5 300 VMware, Inc. # 物理机 192.168.184.254 00:50:56:e2:fa:aa 1 60 VMware, Inc. # 交换机默认IP
-
探测端口
nmap -sC -sV 192.168.184.133 -vv -n --min-rate=2000 # 发现开启了22端口 Discovered open port 22/tcp on 192.168.184.133 PORT STATE SERVICE REASON VERSION 22/tcp open ssh syn-ack ttl 64 OpenSSH 8.2p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)
-
攻击软件
- Medusa的特点
- 稳定性好
- 速度控制得当
- 基于线程
- 支持模块少于Hydra(不支持RDP,可扩展)
- WEB-Form支持存在缺陷
- Hydra的缺点(相对)
- 稳定性差,程序时常崩溃
- 速度控制不好,容易触发服务屏蔽或锁死机制
- 每主机新建进程,每服务新建实例
- 大量目标破解时性能差
- Medusa的特点
5、Medusa
-
语法
medusa -M smbnt -h 192.168.1.100 -u Eternal -P pass.lst -e ns -F -v 3 -M: 表示你要破解的类型,协议。 -h:目标机器地址。 -u:用户名。 -U:指定账号字典 -p:指定密码 -P:指定密码字典 -e : 尝试空密码。 -F:破解成功后立即停止破解。用于同时扫描多个主机时,停止破解 -v:显示破解过程。 -t:指定线程 通过medusa –d 查看支持的服务类型 -q:显示支持那些探测
-
演示
-
创建密码字典
vim /tmp/passwd.txt
-
对SSH进行破解
┌──(root💀yyb)-[/tmp] └─# medusa -M ssh -h 192.168.184.133 -u yikjiang -P /tmp/passwd.txt -F -t 10 Medusa v2.2 [http://www.foofus.net] (C) JoMo-Kun / Foofus Networks <jmk@foofus.net> ACCOUNT CHECK: [ssh] Host: 192.168.184.133 (1 of 1, 0 complete) User: yikjiang (1 of 1, 0 complete) Password: 123123 (1 of 8 complete) # 破解成功 ACCOUNT FOUND: [ssh] Host: 192.168.184.133 User: yikjiang Password: 123123 [SUCCESS] ACCOUNT CHECK: [ssh] Host: 192.168.184.133 (1 of 1, 0 complete) User: yikjiang (1 of 1, 1 complete) Password: password (2 of 8 complete) ACCOUNT CHECK: [ssh] Host: 192.168.184.133 (1 of 1, 0 complete) User: yikjiang (1 of 1, 1 complete) Password: asd (3 of 8 complete) ACCOUNT CHECK: [ssh] Host: 192.168.184.133 (1 of 1, 0 complete) User: yikjiang (1 of 1, 1 complete) Password: passwd (4 of 8 complete) ACCOUNT CHECK: [ssh] Host: 192.168.184.133 (1 of 1, 0 complete) User: yikjiang (1 of 1, 1 complete) Password: iloveyou (5 of 8 complete) ACCOUNT CHECK: [ssh] Host: 192.168.184.133 (1 of 1, 0 complete) User: yikjiang (1 of 1, 1 complete) Password: 123456 (6 of 8 complete) ACCOUNT CHECK: [ssh] Host: 192.168.184.133 (1 of 1, 0 complete) User: yikjiang (1 of 1, 1 complete) Password: 12345678 (7 of 8 complete) ACCOUNT CHECK: [ssh] Host: 192.168.184.133 (1 of 1, 0 complete) User: yikjiang (1 of 1, 1 complete) Password: 123 (8 of 8 complete)
kali中也默认带了许多字典,路径为
/usr/share/seclists/Passwords
-
6、Hydra(九头蛇)
-
语法
-l 指定用户名 -L 用户名字典 -p 指定密码 -P 密码字典 协议
-
演示
密码高亮,且不显示其他错误密码
二、基于Web登录的弱口令攻击
1、基于表单的暴力破解
-
抓取登录数据包,分析账号密码位置
-
进入暴力破解模块,配置探测位置,字典,然后开始攻击
-
添加标志
-
2、基于客户端的验证码绕过
①、检查发送数据包中的账号、密码等信息发现没有获取数据包
- 如果验证码输入错误没有截取到数据包,证明在本地验证
- 本地验证码输入错误的话,就不向服务器发送数据包
ctrl+u
查看网页源代码
②、方法一
使用JS控制插件,禁止JS运行
- Script Blocker Ultimate
③、方法二
直接输入正确的验证码,然后抓到数据包,直接进行暴力破解
由于删除了验证码模块,所以步骤同表单破解
③、方法三
绕过方法二:可以通过burpsuite自动修改全段代码,绕过验证机制
function validate() {
var inputCode = document.querySelector('#bf_client .vcode').value;
if (inputCode.length <= 0) {
alert("请输入验证码!");
return false;
//改为else if (1 = 2)让JS失效
//也可以改为lse if (1 == 2)让值为False
} else if (inputCode != code) {
alert("验证码输入错误!");
createCode();//刷新验证码
return false;
}
else {
return true;
}
3、基于服务器验证码的绕过
①、检查发送数据包中的账号、密码、验证码位置
-
抓取images
-
抓包检测
发现每次登录向服务器提交登录信息并获取新的验证码,所以可以把登录信息提取出来单独发送登录信息
②、通过重发登录数据包,观察验证码是否失效
- 将登录信息提取出来以后,验证码输入之前正确的验证码
- 然后进行暴力破解
③、如果不失效,我们可以直接使用最新的验证码,通过暴力破解模块进行批量探测
4、基于token的绕过
-
通过抓包,发现传输数据中有一个token参数,并且每次传输,token值都不一样
-
观察返回页面的代码,发现token值,每次发送登录数据包的时候,都会携带当前页面中的token值
-
通过intruder,选择需要密码和token两个需要探测的的位置
-
Positions 中设置attack type 为 pitchfork(一对一模式)
-
然后进入
options ->Grep extract->add
,找到token的值,然后划上,这时候工具将为我们自动生成正则匹配语句 -
进入payload模块,设置payload1 为密码列表,设置payload2 为 recursive grep模式
因为程序逻辑原因,所以第一个值获取不到对应的token,所以一般情况下将密码列表第一个字符设置为空格
-
然后,进入resource pool,新建一个策略,将maximum concurrent requests 设置为1,意思是并发数为1
因为token的值是唯一的,所以token不可以并发操作
-
然后我们点击攻击按钮,开始破解
5、基于验证码的识别绕过
-
首先部署dedecms系统
后台管理为:/dede/
-
抓包测试一下,验证码是否失效,结果是无法进行绕过
验证码每次刷新界面都会失效,所以不可以采取单独发送请求的方式
此时就无法使用之前的方法破解,只可以自动识别
-
分析验证码的URL,并在PKav工具图形验证码识别模块中进行配置和测试
- 验证码地址可以为复制图片地址或者抓包中提取
-
设置重放配置:
-
验证码固定长度
-
返回数据处理->重试规则,配置字符串为验证码错误的文本特征
-
将返回的数据中匹配如下表达式时重试的框点上,使配置生效
-
-
然后进行攻击
-
Codex方式
SQL注入原理与应用
一、概念
- SQL语句基本查询
select id,level from users where username = 'test'
- SQL注入产生的原因
- 我们将变量传输给应用,应用程序并未做任何校验或者处理,就直接将变量带入到SQL语句中(SQL语句模板)
- 我们构造的SQL注入语句可以让数据库成功处理数据,并返回结果
二、字符型注入
1基于and
语句,校验是否有漏洞
方法一:
kobe' and 1=1 --返回数据类型 kobe' and 1=2 --不返回数据
方法二:
kobe ' --也可以判断,因为如果注入成功的话则会报错 方法三: kobe' or 1=1# --返回所有数据
kobe' or 1=2# --返回一条数据或者不返回数据
证明存在SQL注入漏洞
三、数字型注入
基于加减运算方式,检验是否有漏洞
输入5返回kevin
输入6返回lucy
输入6-1返回kevin
字符型的判断方法可以用于数字型注入判断特殊情况,在HTTP代码中"+"等同于空格
证明存在SQL注入漏洞
四、读取数据库的数据-获取所有账号密码信息
1、检查是否存在注入点
判断输入的数据是否会对数据库有影响
2、猜测列数
order by x
:按照第x列进行排序
kobe' order by 2# -- 正常返回 kobe' order by 3# --返回错误信息
证明SQL存在两行回显信息
3、使用联合语句判断回显位置
可能存在服务器返回多个数据但是浏览器只显示部分数据的情况,所以进行判断,确定回显位置
确定了回显的位置的时候,就可以查询内置函数,提取信息
kobe' union select 'aaa','bbb'# --查看回显的位置 -- 如果只回显一行的话,可以输入一个不存在的账号 ccc' union select 'aaa','bbb'# --查看回显的位置
注意:UNION内部的SELECT语句必须拥有相同数量的列
- 方法一
-
方法二