CTF选手绕过姿势

极客

本文目录导读:

CTF选手绕过姿势

  1. 参数篡改?不,我直接改“人生观”
  2. 逻辑漏洞?那叫“规则解读官”
  3. 编码绕过?连emoji都不放过!
  4. 心态与“苟”术

CTF选手绕过姿势大赏——嘿,这波操作我直呼内行!

兄弟们,姐妹们,咱们搞CTF的,谁还没几个压箱底的“野路子”呢?说实话,每次看到官方WriteUp里那些一本正经的解法,我都忍不住想笑——正经人谁按套路出牌啊?!今天咱不聊那些教科书式的渗透流程,就唠唠我在比赛里踩过的坑、秀过的活儿,那些让人拍大腿的CTF选手绕过姿势,哎呀,说到这个我可就不困了哈!

参数篡改?不,我直接改“人生观”

你猜怎么着?有一次打Web题,后端逻辑明明是对user_id做鉴权,我试了半天SQL注入都不行,嘿,结果我灵机一动,把user_id改成了0,居然直接以管理员身份进去了!当时我就懵了——合着这开发拿0当“天选之子”呢?这种绕过姿势,说白了就是跟开发者玩心理战,你以为他在第五层,结果他在第一层挖了个坑,咱得跳进去还得喊声“妙啊”!

还有一次更绝,遇到个文件上传的黑名单过滤,什么.php.asp全给ban了,我寻思着常规操作不行,索性把文件名改成了shell.php%0a.jpg,结果服务端解析的时候直接截断了!哎哟喂,那一刻我真想给程序员大哥送个锦旗——“感谢您的不杀之恩,以及留下的换行符漏洞”。这种基于解析差异的绕过姿势,纯纯是考验咱们对中间件特性的熟稔程度,差一分火候都玩不转。

逻辑漏洞?那叫“规则解读官”

讲真,最爽的CTF选手绕过姿势不是技术碾压,而是用魔法打败魔法,记得有次比赛,题目要求提交一个“非负数”,但限制输入必须为整数,我直接提交了一个-0,裁判系统直接愣住——因为-0在数学上等于0,但字符串上又不是正数!哈哈,这波啊,这波叫“逃逸字节的哲学三问”,最后主办方连夜发公告修漏洞,而我,深藏功与名。

再比如,有些题目喜欢搞“限时爆破”,比如6位纯数字密码,正常人跑字典得跑半天是吧?咱不傻,直接抓包看返回头,发现Server字段里藏着时间戳的base64编码!好家伙,通过侧信道绕过暴力破解瓶颈,这招我可是屡试不爽,有时候真觉得,CTF打得好不好,不看你会多少CVE,看的是你能不能当个“人形业务逻辑扫描器”。

编码绕过?连emoji都不放过!

说到编码,我可太有发言权了!有回遇到个WAF,关键字过滤得死死的,selectunion全给拦了,咋办?猜猜看?——我把select写成了SE%4cECT(URL编码套娃),WAF解码一次放行了,但后端二次解码后直接变回原样!这就是经典的“双重解码绕过”姿势,笑死,根本拦不住!

最绝的是有一回,需要构造一个XSS payload,但是标签全被过滤,我灵机一动,输入了<img src=x onerror=alert(1)>emoji变体——用&#x1F600;这种HTML实体编码把alert字母全包起来!结果浏览器解析的时候,直接给我还原成可执行脚本了,当时裁判的表情,啧啧,跟吃了苍蝇一样,所以说呀,CTF选手绕过姿势的核心,你永远猜不到我下一个字符是啥,因为我脑子里全是浆糊和骚操作”。

心态与“苟”术

当然了,光有技术没心态可不行,有的题,正则表达式一看就是“照着网上教程抄的”,这种时候咱就得会“正则反向绕过”,比如规则是/^[a-z]+$/i,要求字母开头结尾,我输入abc%00def,后端C语言字符串处理直接截断在%00,完美避开校验!说白了,绕过姿势就是跟规则玩捉迷藏,你藏我找,你ban我换,其乐无穷。

不过话说回来,所有绕过的前提是理解,不理解开发者的垃圾代码思路,光靠瞎试,那叫爆破,不叫绕过,咱CTF人讲究的是“以德服人”——用脑洞折服对手,用逻辑漏洞羞辱主办方,有时候一场比赛下来,我都在怀疑,到底是我在解题,还是题在解我?

好啦,今儿就唠到这儿,其实CTF选手绕过姿势千千万,今天分享的只是冰山一角,下次比赛要是遇到瓶颈了,不妨换个姿势试试——也许你离flag,就差一个“歪门邪道”的距离呢?嘿嘿,那咱们评论区见咯,都来说说你最得意的绕过骚操作是啥?我先去喝口水,准备听你们吹牛了!

文章版权声明:除非注明,否则均为极客网安-咸鱼原创文章,转载或复制请以超链接形式并注明出处。

目录[+]