1、拿到一个待检测的站,你觉得应该先做什么?(web渗透的最终结果是获取到服务器的权限)
第一步:信息收集
比如说whois查询,TG查询,google查询 或者说查询服务器旁站以及子域名站点,因为主站一般比较难,所以先看看旁站有没有通用性的cms或者其他漏洞或者说查看服务器操作系统版本,web中间件,看看是否存在已知的漏洞,比如IIS,APACHE,NGINX的解析漏洞
第二步:对网站就行漏洞扫描和测试
比如说用appscan, awvs 进行快速扫描,用后台扫描工具找出后台管理员地址,试试有没有弱口令或者是否存在注入,越权等等,用端口扫描工具查看下开放的端口,再通过不同的端口进行利用,如果经过了上面的这些测试还是不行的话,就查看都否有旁站,在利用上面的操作对旁站进行检测
2.SQL注入:
原理: Web应用程序对于用户输入的数据过于信任,没有进行过滤或者过滤不全面,导致前端用户的输入直接传输给后端,攻击者通过构造不同的参数,形成不同的SQL语句来实现对数据库的任意操作
流程:
1.判断是否存在注入,and 1=1 , and 1= 2 然后判断 注入是字符型还是数字型还是其他类型的
如果 有waf 的话就尝试进行各种替换绕过
2.猜解SQL查询语句中的字段数
3.确定回显的字段数
4.获取当前数据库
5.获取表中字段名
sql注入的常用函数 : group_concat() 、concat() 、substr() 、left()
等等
盲注常用函数 :updatexml(),floor(),exp(),assic()
等等
如果有waf一般怎么操作? 可以用大小写绕过,用like代替 = 、空格用%20 %09 %0a 代替 、参数污染、url编码、实体编码、base64编码,八进制,十六进制编码绕过等等
类型有哪些? Union注入,Boolean注入,报错注入攻击,时间注入攻击,堆叠注入
常用工具 是什么,用过哪些命令 ?
sqlmap 工具命令 : sqlmap.py -u 网址 --level = 1,2,3,4
mysql写shell 条件是什么? root权限、有绝对路径、未开启全局gpc
防御方法 进行预编译
3.XSS
原理:通过插入恶意脚本,实现对用户浏览器的攻击
类型:存储、反射、dom
反射和dom的区别: DOM XSS 是由于浏览器解析机制导致的漏洞,服务器不参与,而存储型与反射型都需要服务器响应参与
绕过方法有哪些? 大小写、url编码,各种编码、特殊符号编码、插入特殊符号,不常见的请求绕过
防御方式有哪些? 进行预编译
4.CSRF
跨站请求伪造,CSRF 利用的是网站对用户网页浏览器的过于信任,没有验证这个操作是不是浏览器自愿发出的请求。
CSRF的原理? 简单地说,是攻击者欺骗用户的浏览器去访问一个自己曾经认证过的网站并运行一些操作(如发邮件,发消息,甚至财产操作如转账和购买商品)。由于浏览器曾经认证过,所以被访问的网站会认为确实是用户的操作。
CSRF的防御方式?可以在后端验证referer ,也可以加入 token ,目前比较常用的就是加入 token
5.文件上传:
原理是什么? 服务器过滤不严格或者因为一些服务器特有的缺陷,允许上传任意后缀的文件,且当成正常文件执行
绕过方法有哪些 ? 可以用00截断,或者用服务器解析漏洞特性绕过,或者图片马+文件包含绕过
解析漏洞有哪些?
iis6.0 还有 iis7.X
apache : 未知扩展名,比如说 123.php.xxx
nginx: 配置错误 比如说 123.jpg/xxx.php
(cgi.fix_pathinfo
默认为1)
防御方式有哪些 ?
比如说 对后缀名进行限制 ,对上传文件的内容进行检测 等等
6.ssrf:
原理是什么 ? 利用漏洞,伪造服务器端发起请求,从而突破客户端获取不到数据
作用是什么 ? 内网端口扫描,探测内网的各种信息,也可以搭配 redis 使用、利用file、dict 协议等读取文件
防御方式有哪些 ? 过滤返回的信息、禁止不常用的协议、统一错误信息等等
7.xxe:
原理是什么 ?XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致可加载恶意外部文件
作用是什么 ? 任意文件读取、系统命令执行、内网端口探测、攻击内网网站
防御方式 ? 过滤用户提交的XML数据,禁用外部实体等
8.代理
代理分为哪几种,是什么 ?
正向代理原理: 正向代理即是客户端代理,代理客户端,服务端不知道实际发起请求的客户端
反向代理原理: 反向代理即是服务器端代理,代理服务器,客户端不知道实际提供服务的服务器
9.横向渗透流程:
信息搜集:端口扫描、主机交互IP、登录日志等
攻击: 首先打主机常见漏洞(ms17010等)快速获取权限、第二步再攻击web等服务