参考书:《Web安全深度剖析》
渗透条件:与服务器通过端口正常通信。
web应用程序(客户端,一般为浏览器)默认运行在80端口上。
渗透服务器,一般有三种手段:
随着Web2.0时代到来,互联网从C/S(客户端/服务器)架构变为B/S(浏览器/服务器)架构。Web请求基于HTTP协议。
输入URL,就发起了HTTP请求
Windows系统用curl.exe发起请求,curl.exe需要下载后解压,到curl.exe目录下运行cmd,然后 curl ww.baidu.com
,就返回页面的HTML数据。浏览器只是多了HTML渲染功能。
目前是HTTP1.1,无状态,即不建立持久连接
HTTP遵循请求request/应答response
模型
POST(请求类型是POST) /login.php(请求根目录下的login.php) HTTP/1.1 //请求行
HOST: www.xxser.com //请求头
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0
//空白行,代表请求头结束
Username=, admin&password=admin //请求正文
为了减少服务器压力,web前端常使用JS进行验证,渗透测试中常用HTTP请求截取绕过JS验证。
burp suite是web应用安全测试工具集成平台。
(待补充)
(待补充)
(待补充)
蜘蛛劫持:
通过百度搜索关键词,进入搜索结果页面后,点击某些网站,发现跳转到一些不相干的网站,但是正常输入网址,进入的就是正常的网站。这个就是所谓的蜘蛛劫持。
蜘蛛劫持原理:通过相关入侵软件(比如webshell)扫描已经收集好的、并且有可观流量网站的漏洞,获取权限,在服务器中植入木马程序或者在网页代码中添加劫持代码,然后根据网站访客性质,给出不一样的页面或请求,比如正常用户就返回原页面,当发现是走蜘蛛程序的时候,就会给出已经做了手脚的页面。
记一次搜索引擎劫持攻击
搜索引擎劫持黑帽技术原理及防护
信息探测:搜集服务器配置信息和网站信息
打开google,输入 site:baidu.com
googl常用语法:
site:指定域名
intext:正文中的关键字
intitle:标题中的
inurl:URL存在关键字的网页
filetype:文件类型
例子:intitle:管理登录 filetype:php
:查询网页标题含有“管理登录”的PHP网页
扫描开放的网络连接端口,推断计算机运行操作系统。
安装Nmap需配置环境变量path
漏洞扫描器:SQL注入,跨站点脚本攻击,缓冲器溢出。但逻辑性漏洞、隐蔽的XSS漏洞或SQL注入无法扫描。属于信息探测一种。
Target主要功能:显示信息。
对URL进行测试
WVs可以快速扫描跨站脚本攻击(XSS)、 SOL注入攻击、代码执行、且录遍历攻击、文件入侵、脚本源代码泄漏、CRLF注入、PHP代码注入、XPath注入、LDAP注入、Cookie操纵、URL重定向、应用程序错误消息等。
SecTools.org 扫描模块
原理:数据被执行
注入漏洞分类:数字型和字符型
数字型:输入参数为整型,ASP,PHP等弱类型语言。
字符型;输入参数为字符串,一般用单引号闭合。关键是闭合SQL语句并注释多余代码。
常见数据库注入利用方式:
注入工具:SQLmap、pangolin(穿山甲)、havij、bsql hacker
防止注入:数据类型判断和特殊字符转义, 使用预编译
用户上传任意文件,一般与web容器的解析漏洞配合
防止上传漏洞:
工具:中国菜刀、一句话木马
原因:
又叫css,跨站脚本攻击,指攻击者在网页中嵌入客户端脚本(一般是js编写),加载外部脚本,恶意代码在浏览器上执行。
分类: 反射型、存储型(不需要用户手动触发)、DOM型。
XSS 利用:
修复方式:过滤敏感字符
HTTPonly,阻止客户端脚本访问cookie
定义:攻击者执行系统命令。
防范:
定义:调用恶意文件。常出现在PHP语言中
防范:判断被包含的文件是否外部可控,禁止目录跳转,包含文件验证,尽量不要使用动态包含。
**CSRF,跨站请求伪造,**也称one click attack。盗用用户身份进行非法操作。
两个重点:
get,post,cookie机制
预防:
逻辑错误漏洞:
URL跳转与钓鱼
跳转分为:客户端跳转和服务器端跳转
客户端跳转:又称URL重定向,地址栏URL变化
服务器端跳转:又称URL转发,地址栏不变
常见漏洞信息库:
https://www.exploit-db.com/
挖0day的方式:源代码审计(白盒测试)和模糊渗透测试(黑盒测试)
网站后台安全问题:模板、文件管理、执行SQL语句、网站备份、
MD5:彩虹表和站点破解
常见MD5破解站点:
http:/ /www.md5crack.com/ home
http:/ /www.netmd5crack.com/cracker
http://www.cmd5.com
http:/ /md5pass.info
http://www.md5. hk/ interface . asp
http: //www.md5decrypter . co . uk
http: //www.md5this . com/ index . php
http:/ /www.md5decrypter . com
http:/ /www.xmd5.org .
(以上网站没验证有效性)
拖库:数据库导出,称“社工库”,分为外连接和本地连接操作
根据:Navicat
数据库一般提供默认超级管理员账户,如SQL server的sa用户,MySQL的root用户,Oracle的system用户。
SQL Server
破解数据库工具:Nmap、X-scan,hydra,crackDB等
Hydra,THC的开源暴力破解工具,支持FTP,MSSQL,MYSQL,POP3,SSH等
渗透过程:
WordPress
通过同一服务器的网站渗透到目标网站。
同一服务器上可能有多个网站
常见IP反查网站
http://stool.chinaz.com/same
https://dns.aizhan.com/
http://www.114best.com/ip/
数据库用户权限分配不当,越权操作
原因:每个web程序存在于单独目录中,服务器管理员配置不当
得到数据库账户,使用脚本连接,通过数据库跨目录读写文件。
CDN将原服务器上缓存文件下载到缓存服务器,用户访问缓存服务器。可以直接攻击CDN节点。
搜集真实ip方法
对服务器提权分为两种:
定义:利用系统本身或系统中软件漏洞获取root权限。
uname-a
查看服务器内核版本,查找对应本地溢出程序。‘id&uname-a’,查看当前用户id,所属群组id,内核版本号nc -l -v -p 8888
,等服务器反向连接netstat -an
查看开放端口HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\sevices\
xp_cmdshell
,可以调用系统命令,增加管理员账户
ftp可以执行系统命令,用户权限配置不当
PCanywhere,找保存加密后的连接账户配置信息,
VPS:虚拟化技术,将服务器分为多个小的服务器,有自己OS和资源
虚拟主机:服务器分成许多小空间,共享OS资源
ASPX扩展
3389端口,微软远程桌面服务默认端口
端口转发,用于连接内网服务器
LCX转发,shell脚本自带端口转发,reduh转发,
启动项提权,向启动项内添加远程控制程序,bat文件
DLL劫持,lpk.dll所在的任意目录下运行exe时都会运行lpk.dll
tools lpk sethc
添加后门
地址解析协议:在以太网中进行主机通信,把IP转换为MAC地址。
动态类型:一段时间后不用就删除。Windows默认两分钟
静态类型:永久
主机A和主机B通信
ARP协议主要缺陷:
ARP欺骗:利用ARP缺陷,在网络中发送虚假ARP请求或响应。例如,主机A受到ARP应答包后,直接替换原有ARP缓存,不验证自己是否发送了请求。
常见的中间人攻击:会话劫持,DNS欺骗。
C段攻击:同一网关下的主机ARP嗅探到敏感数据后,再对目标网站渗透。
例子:服务器地址为:192.168.1.8,入侵与192.168.1.8同一网关下的服务器,一般是19.168.1.xxx,也就是C段IP,然后对目标主机实施ARP嗅探(FTP密码,Admin Pass等)。
常见的ARP欺骗工具
针对微软系统的口令恢复工具,可以网络嗅探、网络欺骗、破解加密口令、显示缓存口令、分析路由协议等。
中间人攻击工具,用于主机分析、嗅探、DNS欺骗等。
Windows下ARP欺骗嗅探测试工具
两种常见防御方法:静态绑定(防止ARP欺骗的根本方法)和安装ARP防火墙
arp -s 192.168.195.2 00-50-56-ee-12-6a