记事本

webhacking.kr challenge 7

发现有页面的源代码,发现参数val处存在注入,而且在提示里也说了用union。所做的防御是过滤了一些字符,而且每次随机选一个查询语句,不同的语句需要闭合的括号数目不同。 由于不允许使用空格和注释,我就用TAB来分词;由于最后需要的结果2也不允许出现,加号也不允许出现,我们用减法3-1=2。 由于只有5种随机的情况,所以选定一种一直跑应该就有选中的可能。我选了最简单的只有1个括号的, h...

webhacking.kr challenge 8

接连的几道题都是代码审计的。这道题里,对User-Agent有两个取法,一种是getenv,另一种是$_SERVER,而对两个的不一致的过滤就造成了问题。 具体地,getenv得到的里面不限制单引号、括号和注释符号#,而且会在后面的插入语句里出现。如果我们这里取User-Agent: agent','ip', 'admin')#,那么就会插入一条id为admin的记录。 接下来,我们再请...

webhacking.kr challenge 6

通过阅读源代码,发现只是简单地将cookie做了些字符替换,再用base64解码了20次。于是我们只需要反过来走一遍即可。大部分代码甚至可以直接用他。 <?php$val_id="admin";$val_pw="admin";for($i=0;$i<20;$i++){ $val_id=base64_encode($val_id); $val_pw=base64_en...

webhacking.kr challenge 5

打开页面,查看代码发现只有login可用,点击后来到一个登陆页面。试着登陆了下,发现需要登陆admin;而似乎没有找到注入。 紧接着,发现可以直接浏览目录,在该目录下有另一个文件join.php,点进去发现什么都没有。于是查看代码,发现有混淆的js。通过将其内容打印出来,发现需要cookie和URL里包含一定内容才会显示表格。我们直接按照表格内容提交,发现可以注册。 于是试着注册admi...

对加密的zip文件使用known plain text attack

这道题提示了说对zip文件使用known plain text attack,于是在网上搜了下,这里有一篇论文是关于这个的。 具体论文就没有看了,直接找了现成的实现pkcrack。不过按照作者的要求,需要给他寄明信片,我没有寄诶…… 按照要求,破解还需要知道一部分plain text。而加密的flag.zip文件里有一个Standard-lock-key.jpg文件,搜了在网上下找到了这...

第一次尝试forensic的题目

话说最近在做的ksnctf里面的题目种类还真是丰富啊,今天遇到一道forensic的题目,也是第一次做这类题。 题目给了一个img文件。我最开始是直接用mount挂载,发现有3个jpg文件,但分析不出来这些图片有没有隐写。 后来在网上搜了下,这道提不是stegano,而是forensic。按照推荐,我安装了autospy,它还需要Sleuth Kit。 安装玩autospy后,启动会得...

第一次尝试APK的题目

今天遇到一道APK逆向的题目,难度应该是入门级别的。由于之前见到这类题目直接就放弃了,这样还是不太好,于是试着从头开始,查资料把这道题解决了。 题目给的APK在这里。为了做这道题,我把apktool装好了,还翻墙把android sdk安上了。结果模拟器启动太慢了……以后有钱搞一台实机用好了。话说回来这次也基本没有用到模拟器,主要用了dex2jar和jd-gui。 将APK用unzip解...

Whitespace programming language

今天做题遇到了一道很奇怪的题目。他给了一个cpp文件 单看代码,似乎只是把普通的c++代码添加里很多tab,空格,并没有什么奇怪的地方。用g++编译后,执行得到说FROG_This_is_wrong_:(。看来是另有玄机。 后来搜里下,找到了一种奇葩的编程语言,whitespace。具体在这里有更详细的介绍。简单地说,它是只考虑空白字符,通过特定的组合对应特定的指令。 然后找这个语言的...

火车运煤问题

今天比赛有一道逻辑题,是这么说的(大意): 小明要穿越荒野,距离目的地有600公里。他身上最多可以携带300单位的补给,而且每走1公里会消耗1单位的补给。假设他可以在中途任意设置补给点存放补给。那么要走600公里,出发点至少要有多少单位的补给?如果出发点有3300单位的补给,他最远能走多远? 这类题目以前在网上看到过,不过当时是火车运煤。再次回顾整理了下,找到了思路。 首先,小...

shellshock

好吧,从这名字就知道是怎么回事儿了,前端时间爆出来的shellshock漏洞。我们需要执行cat flag就行。不过我开始试cat会说找不到文件,于是用/bin/cat了 $ env x='() { :;}; /bin/cat flag' ./shellshock