1.后门 黑客留下的一个方便下次进入的网址
2.脚本语言主流php java python
3.常见漏洞 上传 代码执行 sql注入 变量覆盖 逻辑漏洞 反序列化 xss
4.刷票原理 系统检测你的ip地址,限制你的投票次数,通过抓包进行修改ip地址,实现shuapiao
5.burpsuite修改参数,实现伪造ip地址,伪造手机,2g网络
6.将数据包修改成app形式进行访问
aes加密方式由于有偏移量,解密难度更大
国外ping asm.ca.com
旁注 同服务器不同网站
c段站点 同网段不同服务器不同站点
waf 防火墙
黑暗搜索引擎 fofa shodan zoomeye
layer子域名搜索引擎4.2版本
遍历目录 查看目录名字
文件下载 base64 下载网站管理员密码账号
判断有无注入点
老方法:and 1=1页面正常
and 1=2页面错误
可能存在注入点
逻辑运算符 and or xor 且 或 非
跳到首页404一般无注入点
server加相应英文得到不同目的
文件上传漏洞 图片写入后门代码,加入后缀/1.php
前端验证非常的不安全,可以通过修改前端代码的方式使得前端的过滤无效
使用burp suite抓包文件上传不一定成功,因为如果对方的网页代码仅用js时为本地上传,此时burp suite无法生效
什么格式解析什么文件,解析什么代码,一一对应
解析漏洞
黑名单漏洞 上传jpg.zip.php绕过黑名单
.htacess,上传htacess文件后,以后上传的带有shana的文件会被以php的形式执行
uploadlabs第六关过滤空格,使用php 即可完成绕过操作
文件包含漏洞:图片马,执行php内容
条件竞争 先上传后判断删除,我们访问这个文件的地址,由于占用文件,后面的删除操作无法执行,达到目的
解析漏洞,让jpg文件执行php,上传后门代码,达到效果(中间件漏洞)
阿帕奇低版本解析漏洞
垃圾数据 数据溢出防止匹配
符号变异 猜测安全狗是匹配双引号而不是匹配单引号
绕过安全狗方法 "x.jpg;php" 安全狗匹配到;时停止了,没有匹配后面的php
第二种方法换行法 x.
p
h
p
在安全狗眼中是x.\np\nh\np 完成绕过
单次匹配时采用双写即可绕过,pphphp,安全狗递归有次数限制,并不是无限次匹配,我们可以采用垃圾数据重复多次粘贴,达到上传php后门代码的目的
xss
储存型必反射型危害大得多
html查看源代码可以直接看到全部流程的源代码,而php看到的是执行之后的回显的源代码
httponly开启后无法获得cookie信息
进入后台两种基本方式:
自动多添加了一个管理员
xss攻击需要别人去触发
特殊符号干扰:¥#@%&之类的
堵上跨站攻击:输入过滤,输出过滤,开启httponly
imxss
xss攻击
csrf检测手法:打开网页看是否有修改,无修改即无
csrf:
token值防止csrf:随机生成一个token值,通过比对,发现两者值不同,不执行命令
token值很长,爆破不现实,组合位数非常多
ssrf漏洞挖掘:
上下两种情况,上面是由服务器发送的,类似于代理,属于外网,无法添加管理员账号,下面是由本地发送的,属于内网,可以成功添加管理员账号
代码执行与命令执行
文件包含漏洞原理:
php中看到allow-url这个local是开的,则说明可以执行远程包含漏洞
伪协议的使用:
伪协议filter使用base64的原因,因为可能会出现乱码,所以采用base64,后面解码得到文本内容
伪协议input,下面需要使用post传输代码
伪协议写入一句话木马,相当于把一句话木马写入到shell.php里面
伪协议之data协议
修复方法:
可以尝试禁用敏感函数来进行防护
XSS攻击手段
XSS攻击其实就是使用Javascript脚本注入进行攻击,因为浏览器默认支持脚本语言执行,如果在表单提交的时候,提交一些脚本参数,浏览器可能就直接执行了攻击常见与论坛的评论例如“提交表单后,展示到另一个页面”这个功能,可能会受到XSS脚本注入,本地cookie被读取,远程发送给黑客服务器端,然后可以伪造来发起请求还可能会被这样的脚本重新定位,钓鱼网站就是这个思路,跳转到脚本里面的网站后,根据url里的银行卡账号密码,就把钱转到自己户下了
我们应该如何防御XSS攻击
将脚本特殊字符,如<、>,转换成html源代码(<为<)进行展示。
过程:编写一个过滤器拦截所有getParameter参数,重写httpservletwrapp方法,将参数特殊字符转换成html源代码保存,如>转换为>进行展示,这样就能防止XSS攻击了
SQL注入
什么是SQL注入?
SQL注入:利用现有应用程序,将(恶意)的SQL命令注入到后台数据库执行一些恶意的操作。
造成SQL注入的原因是因为程序没有有效过滤用户的输入,使攻击者成功的向服务器提交恶意的SQL查询代码,程序在接收后错误的将攻击者的输入作为查询语句的一部分执行,导致原始的查询逻辑被改变,额外的执行了攻击者精心构造的恶意代码(如or 1=1)
SQL注入防攻击手段
如果程序代码中,dao层的sql语句如果使用sql语句拼接方式,那么就有可能会有注入的问题,因此建议传递参数时使用#,而不是$
MyBatis中 #与$的区别
#{}: 解析为一个 JDBC 预编译语句(prepared statement)的参数标记符,一个 #{ } 被解析为一个参数占位符,可以防止SQL注入问题。
${}: 仅仅为一个纯碎的 string 替换,在动态 SQL 解析阶段将会进行变量替换。
CSRF(模拟请求)攻击
CSRF攻击产生的原因:CSRF(Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,是一种对网站的恶意利用,也是钓鱼网站的一种形式。
攻击方式几乎与XSS相反:XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。
与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性
防御CSRF攻击手段
防御CSRF,也可以看作成防止伪造Token请求攻击(如果黑客提前多次生成好token,再恶意多次提交)
使用图形验证码防止机器模拟接口请求攻击;在调用核心业务接口时,比如支付、下单、等接口,最好使用手机短信验证验证或者是人脸识别,确认是本人在操作, 防止其他用户使用Token伪造请求。因为没有绝对防止抓包分析到token的方法,也可以使用Niginx做限流,或配置黑名单,绑定ip不合适,因为用户的ip可能会变。
忘记密码漏洞
黑客使用抓包工具分析Http请求,在忘记密码找回时,需要发送短信验证码(短信Code),如果验证码数字比较短的话,很容易使用暴力破解方式击破:假设验证码为4位数字,可以使用HttpClient启动多线程技术调用“找回密码”接口,暴力破解生成对应的4位数字以内的验证码进行验证,一旦验证成功,就破解好了
1.忘记密码验证码最好在6-8位,不要全是数字
2.一旦频繁调用接口验证时,应该使用图形验证码拦截,防止机器模拟。
3.使用黑名单和白名单机制,防御攻击。
4.配置防止DDos
5.对异常ip进行限流
上传文件漏洞
漏洞描述
上传文件漏洞就是攻击者通过上传木马文件,直接得到WEBSHELL
导致该漏洞的原因在于代码没有对访客提交的数据进行检验或者过滤不严,可以直接提交修改过的数据绕过扩展名的检验。
需要验证文件流而不只是文件格式
操作:上传编写好的木马文件,如.jsp后缀的文件,里面的逻辑为循环删除所有文件,然后访问此文件的url即可
修复方案
1 对文件格式限制,只允许某些格式上传
2 对文件格式进行校验,前端跟服务器都要进行校验(前端校验扩展名,服务器校验扩展名、Content_Type等)
3 将上传目录防止到项目工程目录之外,当做静态资源文件路径,并且对文件的权限进行设定,禁止文件下的执行权限。
4 上传图片的时候,一定要使用判断文件流的方式判断它一定是一张图片才能上传,不要通过判断后缀方式的方法
5 静态资源与动态资源分开服务器执行(Nginx+Tomcat实现动静分离),这样jsp就算经过伪装为静态文件(.html等),也会因为到达的是静态服务器,没有运行环境,所以无法执行(建议,这样也能起到加速的目的)
6 使服务器的硬盘无法做删除操作,不要有热部署功能(或限制上传class、jsp、exe等文件)
文件上传
如果本身功能就是上传文件去执行,那么就有可能执行非常危险的命令;
解决:设置文件白名单,限制文件类型,另外还可以重新命名文件,改名为不可执行的
路径遍历
使用相对路径来遍历未开放的目录;
解决:方式是将JS,CSS部署在独立的服务器,使用独立域名, 其他文件不使用静态URL访问,动态参数不包含文件路径信息。
文件下载漏洞
很多网站由于业务需求,往往需要提供文件(附件)下载的功能块,但是如果对下载的文件没有做限制,直接通过绝对路径对其文件进行下载,那么,恶意用户就可以利用这种方式下载服务器的敏感文件,对服务器进行进一步的威胁和攻击。
漏洞存在的地方:
系统中存在文件(附件/文档/图片等等资源)下载的地方。
漏洞的危害:
通过任意文件下载,可以下载服务器的任意文件,web业务的代码,服务器和系统的具体配置信息,也可以下载数据库的配置信息,以及对内网的信息探测等等
burpsuite抓包,查看文件下载的参数filepath,发现这个是通过绝对路径来获取资源,于是我们可以利用这个点来任意文件下载
0x03:通过报错获取网站的绝对路径
/data/webapps/LawPlatform
下载数据库配置文件
路径为:../../../../data/webapps/LawPlatform/WEB-INF/classes/config.properties(具体看开发人员如何部署)
连接oracle数据库,连接成功
0x04:当然还可以有很多用途,反正尽量把所有重要的配置文件以及代码走一遍流程,尽可能最大化的渗透进去