go-everywhere 基于golang的单页代理服务
很多时候由于种种原因,无法使用常规VPN连接,或者因为懒和其他原因装不了客户端,仅仅只想访问一个页面(下载,看文档等)这样大动干戈是不好的,网上也没有什么好用的就自己写了一个轮子,欢迎大家使用~ 需求 单页代理,无需安装、配置任何东西访问网页就能启用代理访问 白名单制,防止变成公交车 服务器stateless,不缓存下载内容占空间等 Feature 基于golang,跨平台还是比较方便,提供了3种方式:源码跑、docker跑、各平台可执行文件,选择喜欢的就行。 支持http/https单页代理、支持下载代理(服务群不保存文件只转发流量)、支持git直接代理(这个很重要哦) 基于正则表达式的白名单制,支持热加载 下载地址使用样例 12白名单后访问 https://xxx.com/https://github.com/MXWXZ/go-everywhereGit代理 git clone https://xxx.com/https://github.com/MXWXZ/go-everywhere 详情请参考ReadmeGPL协议,Github:https://github.co ...
Linux Kernel TLS(KTLS), ULP 和OpenSSL的大坑
前几天GSoC的工作,了解了一下KTLS、ULP以及和OpenSSL的交互,踩了很多坑。同时因为技术比较新,几乎没有中文文档,英文的都很少,在此记录一下,也算是贡献一点中文资料吧…… 什么是Kernel TLS(KTLS)首先我们来看看一个使用OpenSSL的简单web server(摘自原论文):目前的TLS加密一般是在用户态,也是由于各种历史原因和http的支持,都是先建立TCP通信,然后再在用户态进行握手等操作。比如上图发送一个文件,利用system call从硬盘读出内容,然后回到用户态,OpenSSL加密后再通过system call发出去,这一来一回需要进出内核态2次、伴随着文件内容也复制了2次,虽然硬盘访问占大头,但这个开销还是可观的。 为什么不在Kernel态实现OpenSSL?好问题,参考这里,简单来说就是现在版本的OpenSSL使用了很多用户态独有的东西,加上历史包袱和各种重构使得这件事难度极大。 虽然通过mmap之类的可以避免一次复制,然而还是要进出内核,复制加密数据,Zero Copy的诱惑是巨大的,所以有了 sendfile 这个好东西,不熟悉的可以参考这里但 ...
“网鼎杯”网络安全大赛 青龙组Writeup&总结
周末在SJTU队打了网鼎杯,学到了不少新姿势,记录一下。 filejava一个apache看到8.0.24版本第一直觉就是CVE-2020-1938,然而8009端口没什么响应……然后有个<!-- flag in /flag -->的提示应该是要getshell啥的,上传页面也没啥好搞的也不解析。然后在乱试的时候发现在/DownloadServlet这里的filename如果留空会报错,错误信息里有doPost的函数,这就有点意思了,试试POST提交,filename依然留空 123456789java.io.FileNotFoundException: /usr/local/tomcat/webapps/file_in_java/WEB-INF/upload/0/0 (Is a directory) java.io.FileInputStream.open0(Native Method) java.io.FileInputStream.open(FileInputStream.java:195) java.io.FileInputStream.<init>(F ...
Linux下连接SJTU-IKEv2校园网代理
原本以为连个VPN没啥大问题的,结果折腾了半天……还是被windows惯坏了……诶
某校统一身份认证越权0day复现
下午1点28分50秒,教育SRC某大佬爆出某校的统一身份认证系统存在越权漏洞,可以修改任意用户密码。这可是新鲜的0day啊,虽然看不到详情,但是在内部人员透露了一点方向后还是独立复现出来了,看不到原作者怎么搞得,可能不一样但都能用…… 认证流程首先我们看看这个流程,先是问一下账号和验证码接着检查一下电话号码是否匹配,匹配就发验证码然后检查验证码最后就是重置密码啦整个流程还算正常,然而根据内部人员提示的方向就是密码重置那么就要好好观察一下这个。 BUG触发首先尝试了几波伪造请求没什么好玩的,那么估计就是和重放相关的,试了下重放最后一步,在验证成功的情况下可以无限制重置,既然前端请求中没有包含账号相关的信息,那么状态必然是通过JSession保存在服务端,那么可以大胆猜测服务端保存了第一次的用户名+是否验证通过的信息。于是乎就有一个问题,如果开发时疏忽在第一步后没有重置验证通过的标记,那么在验证通过的前提下重放第一次的请求,即可伪造任意用户实现重置密码,试了下果然,室友手机接到了重置成功的短信了:) 后续…然而后续问了问网络中心,结果他们竟然只保存了用户名,所有验证都是在前端做的……所以不 ...
CSAPP:Attack评分服务器getshell
CSAPP系列实验都很不错,歪果仁果然有点东西,其中Attack实验就是缓冲区溢出,不过作为打CTF的怎么能满足于得分……整了半天终于成功将评分服务器getshell了(大雾 前期准备我们先看看这个lab是个啥,给了两个程序然后需要overflow控制RIP,总共大概就是基本覆盖、ret2shellcode、ROP三种,且程序一个保护都没开……其中lab2吸引了我的注意,通过栈溢出ret2shellcode从而调用函数,且NX是关闭的,这就有点意思了。关键的一点是这个lab你每做完一个可以在服务器网页上看到分数,结合之前CSAPP:Bomb的lab分析可以知道它肯定会将payload发到服务器二次验证,不可能让你patch就能得分的……但是与之前定死的答案不同,这次shellcode每个人生成的可不一定一样,而且助教特意解释了正确的payload肯定可以过,那就只有一种解释了,服务器会再次运行你的payload,根据返回输出判断你的答案是否正确!于是这就变成了一道PWN题…… 流量分析通过抓包我们可以发现当你成功一个的时候程序会向服务器发出一个GET请求 http://x.x.x.x: ...
打造你的专属Linux环境(各式插件、软件、主题推荐)
自从主系统转到Linux以来,越发感觉到开发上的方便快捷……虽然是双系统但是除了打游戏windows现在基本都不启动了,可以说除了游戏可能存在性能和支持上的劣势,Linux基本可以作为日常系统使用了。下面就说说如何利用各种软件插件等打造自己的Linux环境! 随时更新。 系统环境这里我用的是Manjaro KDE,arch系的AUR库真的是太香了,谁用谁知道。下面软件的安装大部分也基于AUR,其他发行版可自行查找。 选择了Linux就是要有一个折腾的精神(尤其是Arch系),很多情况下需要看文档啥的,如果不喜请换回Windows。 贼爽的工具们其他的可能网上有别的教程,不过这些我正在用的工具就不一定有了,个人用的确实很爽,在这里推荐一下。 Flameshot源码:https://github.com/lupoDharkael/flameshotArch:https://www.archlinux.org/packages/community/x86_64/flameshot/ 可能是Linux下最强的截图软件,完美融合KDE,实在是太舒服了,开源免费安排上开机启动,跟着文档改快捷键为习 ...
Jane Street ETC - 如何玄学地获得第一
上周末参加了Jane Street量化交易比赛(ETC)的hackthon,本来没想着拿奖就是来玩玩,结果玄学地获得了第一……不过有钱拿总是好事,Switch有着落了23333。
SJTU-CTF2019 Misc/Web出题笔记
有幸给第二届SJTU-CTF出题,pwn太变态了还是misc和web好对吧23333
RoarCTF2019 phpshe题解
RoarCTF最后一天放的题目,很有意思,熬夜搞出来了一血+1000分成功反超白泽23333