OpenSNS 前台越权登录管理员账号漏洞分析

上个月打 ByteCTF 线下 AWD 时,有一个靶机是 OpenSNS 这个站。比赛第一天情况还好,全场基本上只拿着主办方留的后门互相打;到了第二天早上才爆出了两个洞,我对着流量陆陆续续地修了好久。 其中一个是因为 ThinkPHP 3 的模板设计缺陷而引发的漏洞,这是 ThinkPHP 3 开发的那一套 CMS 的通病,这里就不赘述了,具体可以阅读 @Li4n0 的这篇文章TinkcmfX 前

RoarCTF Web writeup

前几天一直在打 RoarCTF。Web 题总得来说难度适中,正好适合我这种菜鸡学习新东西 XD 虽然第一天刚开始的时候平台一直进不去,从而导致一堆娱乐圈的弱智直接知乎见。真的无语。其实整场比赛下来我感觉还是蛮爽的,虽然容器有时不是很稳,但从题目质量上来说确实看得出是师傅们是蛮用心的。 自己花了一下午肝出来了一道 Web,然后第二天和 @Moesang 大佬一起,拿了 Web Go 题的一血。开心~

Light Cube 四周年快乐!!

时间过得真快。 一转眼就是大二了。我还记得去年是在军训完的那个国庆假期,也是在宿舍里敲的三周年的文字。和去年的国庆假期一样,今年也是宅在宿舍里。不过好在今年偶尔会去协会摸鱼。 SAO Alicization 下半篇要开始放送了,Light Cube 也已经四周年了呀~ 前些日子在 Twitter 上看到这么一条推文: 虽然没她一样强到用 C++ 去写服务端,不过确实是从搭建这个站点开始,我因此陆陆

Byte CTF web1 boring_code Writeup

是二血呢~ 今天上午忙着去补考工程经济学,50 分钟就出考场回协会做题。 很开心 Web1 boring_code 拿了二血,同时下午也得知补考被老师捞过了,晚上还在协会吃了烧烤。真的是很开心的一天呢~ 那么就来聊聊这道题吧。 回归 PHP 语言的本身 Web 中的 PHP 题,我比较喜欢的是对 PHP 语言本身考察的那些题。PHP 是一个解释型的弱类型语言,而弱类型带来的各种“骚操作”层出不穷,

『自闭 PHP 内核』 vol1. 来写一个 PHP 扩展吧~

之前学 C 语言的目标,就是想有一天能去看 PHP 的底层源码。一直对 PHP 挺惊讶的,她是一个很容易上手的语言,但是却是使用 C 语言编写的。C 语言原生能实现的功能,所含的库就不多语法残废,又十分地接近系统底层;很难想象像 PHP 这么一个语法宽松随便的语言,是怎样用 C 实现的。 之前在协会分享会时,Hammer 学长曾带着我们去看了 PHP 源码中关于弱类型比较的部分,还用 gdb 一步

聊聊 PHP ob_start() 在开发中的应用

先从安全聊起 上周六协会 AWD,其中的 web1 中,有一个ob_start()的后门,具体代码是这样的: @ob_start(base64_decode(‘c3lzdGVt’)); echo “$_GET[persistent]”; @ob_end_flush(); 参照 PHP 的文档,我们其实可以知道这个后门的原理。 c3lzdGVt这一段,base64_decode出来的即为system

Vidar-Team 内部 AWD 线下赛总结

今天六一,协会举办了大一第一次线下 AWD。 很开心最后我们组能获得第一。虽然上午被疯狂 Check Down 到自闭,但下午全靠 Moesang 大佬弹了四五个 Shell 疯狂cat /flag,同时 Y 也把 Pwn 给修好了。一下午就没怎么 Down 过,除了我中途修坏了一道 web 才 Down 了一轮。(是我太菜拖大家后腿了嘤嘤嘤 这也是我第一次打 AWD 啊。 这几天都在给 Lian

《高性能 PHP7》笔记

类型声明 PHP 作为一个弱类型的语言,加入类型声明,真是一件大好事啊!这样确实能够减少很多 bug 的产生,今后也要试着养成写类型声明的习惯。 形参类型声明 function foo(int $num){ echo($num); } // foo(123); -> 123 // foo(‘123’); -> 123 // foo(‘asd’); -> PHP Warning 这

Typecho install.php 反序列化漏洞复现

昨天0ctf,唯一的一道 web 还是 Java,那个鬼椒的 hint 也是无语。直接自闭了。 对面的 bin 爷爷肝的不亦乐乎,web 狗只能在角落摸鱼。 之后我便去复现周五协会培训时司大哥讲的 Typecho 反序列化漏洞。之前听的时候,到后半部分有些理不清了,自己尝试的时候才差不多搞明白。 其实反序列化难就难在 pop 链的构造,真的是一环套一环啊。需要明白哪些变量使我们可控的,有哪些魔术方

反思一下近期的自己

昨天和同学去协会坐了一下午,打算去和写后端的大佬配合修 bug 的。 期间听到学长们的对话,司大哥看我之前读过 CodeIgniter 的源码,便问我 CodeIgniter 为什么比 ThinkPHP 更安全。 唔……这还真的涉及到我的知识盲区了。当时支支吾吾地说不出话。 感觉开学以来没那么有动力了,是因为在肝项目没去学新的东西了?我不知道。 感觉这样下是肯定不行的。前方

我在 Cube 中加入了 Google Authenticator 登录验证

真是巧合,我居然又是造轮子 在高三上学期在宿舍洗澡的时候,我突然脑洞大开,想到了一个生成六位随机数字进行双重验证的东西。 到周末回家的时候花时间写了出来: OneCode https://github.com/wuhan005/OneCode 你也可以看看我当时介绍她时所写的文章。 当时还给她设计了个 Logo 来着,回想起来不禁觉得自己当时脑洞也真是挺大的。 但脑洞归脑洞,这个应用也像我的一大堆

终结!这可能是目前最好的 PHP 部署工具了

提问:怎么把大象放进鲸鱼里? 开过一些坑,写过一些有意思的 PHP 的程序或小工具。说实话,我是真的挺喜欢 PHP 这门语言的。 她开发迅速,很快就能将突然之间产生的灵感做出来。 有了几台学生机后,我便尝试着把自己写的东西都放到上面去。凭借着 Docker,管理起来还算是“整齐有序”。 都说程序员会想尽办法偷懒,“偷懒”也一定程度上也决定了生产力。 确实是这样的。 过去的很长一段时间里,我都在寻找

第一次合作写一个项目,感触颇多

ひとりじゃないよ 一直以来,我都是一个人瞎写一些东西玩的。自己突然有了脑洞就开一个坑,但真正能填完坑的不多。 之后做外包的时候前后端也都自己一个人写完。一切全都是按照自己的想法心情来。好在对自己也算是负责,很少出现那种看不懂自己的代码的窘况。 有人说 PHP 是一门适合个人独立开发的语言。现在也不是很明白为何这么说。其实只要大家之间商量好,你写哪个 Controller,我写哪个 Model,约定