前段时间正好有时间,所以花了一些时间写了一个j123jt的聊天板,里面包含了很多种洞,算是比较像是渗透的渗透题目了,后面由于为了造洞把代码改的有些乱,所以没能按照预期写下去,还是比较可惜的,不过还是写出完整的wp,有兴趣的人可以去做做看,不过后面的xss可能懒得打开了,自己可以叉自己试试…
j123jt的聊天板 1、login bypass 2、弱口令 3、业务逻辑,注册覆盖
4、忘记密码修改j123jt密码
5、xss
6、开启csp后
7、开启完整的csp,留csrf
本题题解详情 题目ID: 79 题目描述: j123jt在LoRexxar的催促下,赶工出了一个全是洞的alpha版聊天板,你能找到吗 XD!!http://115.28.78.16/hctfj1/welcome.php Hint: 1、由于语句的问题,所以开始很多人做出来都不知道怎么回事,给个hint 2、sqli bypass login
第一个版本的洞很简单很简单了,就是所谓的万能密码登陆 主要问题的源码是这样的
如果你看得懂php的话这里就很清晰了,username完全没有任何过滤,这里$user可以构造成'+or+'1'='1
,合并到语句中就是
select password from users where username = '' or '1'='1' and password = '
这里就是构造了永真条件,所以就能登录到j123jt的账号了o( ̄▽ ̄)ブ。
对了这里最短的payload应该是5位'||1#
本题题解详情 题目ID: 80 题目描述: j123jt在LoRexxar友好的(mdzz)帮助下,修改了初版的洞,但是…http://115.28.78.16/hctfj2/welcome.php Hint: 1、如果让你写一个站,你会使用什么测试账号呢? 2、j123jt一般使用id作为username和password的一部分 3、为了实现洞,前面几题的环境是不同的,别指望从第一版本可以找的别的洞哦!
hint已经写成这样了,我觉得很好理解,这题就是弱口令,所谓弱口令就是一个用户的使用习惯,仔细想想其实很多人都和我有相同的弱口令习惯,所以这里的密码其实不难猜。
username=j123jt&password=j123jt123
本题题解详情 题目ID: 81 题目描述: 被批斗了的j123jt删除了测试账号后,但是beta版难道就没有洞了吗?http://115.28.78.16/hctfj3/welcome.php Hint: 1、业务逻辑漏洞 2、你有没有发现你可以注册很多个相同账号名字的账号呢?
所谓业务逻辑漏洞,就是说在书写代码的时候产生的非代码层的漏洞,而是逻辑层的判断,这里的hint也很清楚了,问题所在就是没有在注册的时候做用户唯一性检查。
主要部分源码是这样的
我们看到并没有做什么判断,所以注册一个j123jt的账号,就可以登陆了。
本题题解详情 题目ID: 87 题目描述: 在LoRexxar善意的帮助下,聊天板终于可以打开了,在LoRexxar的强烈抗议下,j123jt添加了修改密码的功能,结果….http://115.28.78.16/hctfj4/welcome.php Hint: 业务逻辑
这里就是一个挺有趣的业务逻辑漏洞了,也是以前遇到过的一种洞,仔细观察可以知道,在要求用户输入旧密码的判定成功后直接跳到了修改页面,但修改页面并没有做任何用户验证,导致可以修改任意用户的密码,这里为了降低难度,参数通过get方式传输了。
后台的主要源码是这样的 changep.php
这里只是做了一个简单的判断并跳转 而verify.php
可以看到从get参数中获取user,然后进行修改密码,所以跳转到这页请求j123jt的修改密码,即可修改密码成功,由于很多人会随手修改一个密码,所以在后台有一个每20秒修改一次密码的脚本,不知道有没有人因为这个原因无法登陆,如果有可以自己再尝试下。
本题题解详情 题目ID: 88 题目描述: 在LoRexxar的不懈努力下(mdzz),聊天版终于可以使用了,可是j123jt是个不懂xss的人….http://115.28.78.16/hctfj5/welcome.php Hint: 1、前段时间做了一些xss弹窗的题目,可是xss仅仅是弹窗吗? 2、管理员没课才会打开看聊天板,别急哟!
到这里,前台的洞已经被修复完了,但是聊天板还没有任何过滤,所以所有的xss都可以执行,你可以使用站内互发的方式,也可以用请求自己vps的方式,两种方式都可以get 管理员cookie。
先看看源码吧。 submit.php
里面有个比较重要的是filter,在class.php
仔细看就知道标签只过滤了一次,而且没有转移单引号,xsspayload基本都是可以的,简单尝试下就知道了。
本题题解详情 题目ID: 92 题目描述: j123jt听说开启CSP可以有效防止xss,就从网上搜了一下,然而…http://115.28.78.16/hctfj6/welcome.php Hint: 1、xss 2、由于出题时候遇到一些问题,现在改为如果成功执行js,payload发到LoRexxar处获取flag
题目到这里就有一点儿难了,出题的时候正好在研究csp,所以正好出了最后两题,我们先来看看这题的csp。 有兴趣学csp可以看我的微博 http://lorexxar.cn/2016/03/17/ccsp/
仔细看可以发现里面有一条frame-src *,说明iframe没有做任何的处理,如果使用iframe,我们可以调用任意位置的js执行,只可惜我在出题的时候没考虑到iframe标签的不同源问题,导致这里其实无法盗取cookie,所以后台获取flag方式改为只要执行js即可…
本题题解详情 题目ID: 95 题目描述: j123jt终于好好研究了下csp并修改了到找不到bug,为了能更好的管理聊天板,j123jt给自己的账号加了添加管理员的功能,而管理员可以查看所有的message,结果…http://115.28.78.16/hctfj7/welcome.php Hint: csrf+bypass csp
题目也是用了一个黑科技,我曾写过一篇博客 http://lorexxar.cn/2015/11/19/xss-link/ 在关于csp的文章我也提到了这个
先打开看一眼csp
好像没有什么问题,那构造一个<link>
发现请求是有效的
源码里发现提示
比较清楚了,构造
<link rel="prefetch" herf="http://115.28.78.16/submit.php?addadmin=xxx">
管理员打开后就会发出请求,这样就会产生csrf漏洞了
所有题目的的wp就到这里,如果有什么不懂得,可以直接私聊我(LoRexxar),这套题目本来要出很多题目,但是由于前面写的太乱,我改成mvc模式还是太乱了,所以sqli的题目没办法出下去了,我把全部源码传到coding上,有兴趣可以去自己搭着玩,源码可能有些太乱了,不必深究….