字符?正则?
打开题目后出现一段代码
大致分析会发现需找到一个id满足前面的匹配才可以输出$key,即flag,本题主要考察有关正则表达式的内容。
“/key.*key.{4,7}key:/./(.*key)[a-z][[:punct:]]/i”
分析上述代码,首先需要一个key,而 . 表示匹配一个除换行符以外的所有字符,可以任意选择,比如a; * 表示匹配前面一个字符大于等于0次,为了简便选择不匹配;接着又是一个key; . 可以仍选择a来匹配;{4,7}表示随意匹配一个字符四到七次,如aaaa,然后又是一个key: ; \ 表示转义,则该题目的意思说明匹配了一个/./,也就可以为/a/;顺着往下就是a,这里的星号仍可以选择不匹配,或者也可以加一个p,又是一个key;[a-z]表示在其中随便选择一个字符比如b,最后的[[:punct:]]为一个标点(任意)。
最后可以构造payload为?id=keyakeyaaaakey:/p/abkeya.
得到flag
补充一下代码中的trim函数,该函数为移除字符串两侧的空白字符或其他预定义字符;代码中的/i表示不区分大小写。
各种绕过
代码审计的题目,
首先题目要求uname与passwd要相等,知道sha1加密参数不能为数组,这个时候会返回false,要注意两个数组也不可以相等值。所以构造payload ?uname[]=2&id=margin,通过HackBar Quantum发送post请求,即
得到flag
细心
题目提示想办法变成admin
打开后是这样,(emmmm…也是因为之前很多题目打不开或者有错误,经常出现类似页面,我一度认为这是题目出现了问题,后来查了一下发现这就是这道题。。。。)
新手小白对这道题没啥感觉,看着这个页面也不知道要干啥,看了看源代码,昂。。。也没发现啥,没办法看了看wp,说是要用御剑扫描后台,这样想来的话可以联系它给的提示,就是后台的问题,尝试了一下
访问第一个网址,得到
访问
提示
需要构造一个payload,根据题意大概猜想一下,得到下面的payload
得到flag
urldecode二次编码绕过
依旧是代码审计题目,代码如下,
首先看到eregi函数,该函数是在前面的字符串中找到与参数匹配的,不区分大小写,但是想要得到flag必须使id不等于hackerDJ,代码中有提示可以将id进行url编码,此时就保证了==(会先将两边的数转换为同一种类型后在进行比较),只是单纯的值相等。
通过编码工具(这里说明一下,做这道题需要熟悉urldecode的编码方式,它是对字符串进行解码处理,根据题目提示二次绕过,猜想应该是需要进行二次编码处理)
我对整个hackerDJ进行了两次加密,
构造payload,
得到flag
一点小感想吧:
做题目还是要多思考一下,有些东西有套路,但又不完全相同,遇到再稍微难一点的题目就会不知道怎么办。。。看别人的wp确实会被带的思维模式固定化,没有发散式的思维,没有创新,即使做出来了也不一定会有什么进步。。。所以还是需要多思考啊!!!