实验课扫描器
基础功能参考国内扫描器即可重点功能1.信息收集写个爬虫爬取qcc,商cc的子公司,然后icp查所有域名子域名查询使用网上较为流行的工具,oneforall,subdoamin这些的。
2.增加一个添加自定义扫描器的功能只要输入这个扫描器的运行指令,将文件那块用{aaa}这种的当成占位符,然后将输出文件的文件名填写即可添加这个扫描器的功能
尽量使用正则之类的来适配绝大部分的扫描结果内容。然后得有个输出结果下载功能下载的是这个扫描器正常输出的扫描结果文件,来防止正则匹配不正常。
协会展示
Thinkphp 5.2
web缓存欺骗与投毒
da22f02973240a80064fd7fa9219f4217068d496d01d237910cdf9ea08d721c8a30b4b7fd59cb4011ac133cdb2cbffc941c2435f3da0c7477ef86deacf32eeeb13c9542a4bf4ef2fb176c4b662098538927c55a8ea865cdc42d228d90f562f88ff5f2810990c7d274c18b3acb6a7faada0886421422820e99e45a419471203b260ae71d9f2c528537159666f578553ed2449ad42cffd5075406bc103c13330fada73b470e5534bebb643d144df993781e04daafd013aaa612437ef074eeacee656223cc179a796a1317c185b187a9cf71f416629391ebdf44e0b556bac85c7ec8d609a8dc00e3c00f9b83cfbbd33891659b879d7ba6060ceb ...
代码审计
php第1得分点
搜索Unauthorized找到EnsureTokenIsValid.phpX-Token对上就可以了请求头X-Token输入为my-secret-token
第二得分点
访问token路由会返回token值。
将token和cookie都替换一下就可以成功访问了Levaler的token默认是X-CSRF-TOKEN头看代码可以发现上传的name为avatar,上传后会保存到/var/www/laravel-project/storage/app/文件名这里我们是无法执行的,但是move存在目录穿越我们可以传to为../../public/aaa.php从而穿越到public
文件上传然后move存在目录穿越穿越到public下
第三得分点
大多数回显的点都直接使用Blade::render并没有预处理存在ssti直接在demo的name下插入ssti语句即可命令执行@php system(‘whoami’); @endphp
每个语言挑选中级或高级其中一个做,做两个按高级算分。
java第五得分点
配置文 ...
SRC
cors所谓cors其实就是浏览器的跨站请求协议cors和csrf的区别就是一个是利用img等标签来操控用户行为看不到其返回的值,一个是通过跨站请求来获取敏感信息。
主要原因是在某些网站是需要允许跨站资源访问的,这时候就一套允许携带cookie的跨站协议。而cors由几个请求头来进行操控Access-Control-Allow-Origin: Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONSAccess-Control-Allow-Headers: Origin就是其允许的域如果这个返回值可控或者这个返回值为*即可跨域来获取用户的某些信息主要是fetch这里ajAX请求
下面这个文章写挺好的https://forum.butian.net/share/2901
危险组合一:最严重 — 任意 Origin 回显 + 允许带凭证请求(由攻击者发送):
1Origin: https://attacker.com
服务器响应(危险):
1234Access-Control-Allow-Origin: https://at ...
ccb
文曲签学
长按FN进入调试模式使用read读取文件
开源组件的危害
压缩包说压缩备份的密码很强所以猜猜其为明文爆破而题目说这个是开源组件那么就再GitHub上找
最终找到这个为onenav的beta 0.9.12然后将favicon.ico和.htaccess index.php进行压缩然后明文爆破
直接停止就会自动下载无需密码的压缩包
解压后看config.php。
然后rot13一下
黑盾
上传php的时候发现其回显为删除那么就有可能是上传后检查再删除,,即可以尝试条件竞争观察成功上传的jpg文件可以发现其重命名的文件名是date的md5值,而date是服务器的时间。再请求的Date响应头转换一下即可
而上传的文件内容也有过滤但是是关键词过滤<?php使用<?=然后后门出现php就直接拼接即可那么上传写入文件的payload如下1<?= file_put_contents('LSE.ph'.'p','<?= var_dump(fread(popen($_POST[1], "r"), 1000)); ?>'); ?>
然后再phpinfo.php可以发现其禁用了很多函数,但是没有禁用popen所以可以使用popen绕过
然后就是条件竞争了bp不断发文件上传的包,然后有py写脚本访问文件脚本如下123456789101112131415161718192021222324252627282930313233343536373839404142434445 ...
SAST
流程先写一个简单的寻找危险函数的AST然后打补丁,提取出这个危险函数的参数,通过正则来判断这个参数的师傅是拼接或者直接通过AST来判断,对可以直接通过AST判断,当参数全为常数时没有当参数中出现了变量时其存在。
然后再打补丁来判断这个参数是否可控,目前没有看到怎么通过AST来向上寻找参数,个人目前的想法是通过,将所有可控参数都进行记录,当发现了$_GET,$_POST这种时将其记录为一条赋值链,结构是双头链表或者其他可以向上查询的,这样子当再危险函数中发现了参数时只要查找是否再链中就可以确定其是否存在sql注入。
AST123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 ...















