vortex15
这道题给了两个文件,一个是加密用的程序,另一个是加密后的文件。加密的方法很简单,就是读plaintext和8 bytes的密码,然后cipher[i]=key[i%8] ^...
View Articlesave the world
http://www.wechall.net/challenge/Z/save_the_world/index.php这道题和ISG里的yaya用的是同样的思路,这里再复述一遍。据说这个方法的名字是Hastad,但我觉得思路其实很简单:用中国剩余定理找到c, 使得c%n1=c1, c%n2=c2, c%n3=c3 求c的立方根p#!/usr/bin/python2#gcd(a,b)...
View Article安装metasploit
首先是ruby1.9,因为版本低,所以从aur里装的。为了方便起见,把PKGBUILD里面涉及到的后缀1.9全部去掉,方便。再给gemrc文件里加上 gem: --no-ri --no-rdocgemrc文件可以通过$ strace gem 2>&1 | grep gemrc找到在哪里。还需要bundle来管理gems$ gem install...
View ArticleELF segments and sections
有时候需要搞明白ELF文件里哪些部分是可写的,之前一直是稀里糊涂的,没有仔细去研究。今天稍微看了一下manpage,并动手试了下,大概明白了segments和sections之间的关系。以下内容是基于我自己的理解写的,所以有些部分可能并不准确。首先是两个概念,segments和sections,这两个是完全不同的。ELF文件除了ELF header,还有program header和section...
View Articlefd
1分的题……#include <stdio.h>#include <stdlib.h>#include <string.h>charbuf[32];intmain(intargc,char*argv[],char*envp[]){if(argc<2){printf("pass argv[1] a...
View Articleunexploitable
这次是500分的rop#include <stdio.h>voidmain(){printf("Not all the bugs are exploitable.\n");printf("Try to exploit this one and you will see.\n");printf("Or.. maybe you can prove otherwise :)\n");//...
View Articlebof
代码如下#include <stdio.h>#include <string.h>#include <stdlib.h>voidfunc(intkey){charoverflowme[32];printf("overflow me :...
View Articleflag
直接用IDA打开,居然连输出的字符串都找不到…于是通过strings发现文件是被UPX压缩了。下载UPX,用upx -d flag解压缩后,直接找到flag地址。或者再用strings
View Articleinput
代码如下#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/socket.h>#include <arpa/inet.h>intmain(intargc,char*argv[],char*envp[]){printf("Welcome to...
View Articlepasscode
代码如下#include <stdio.h>#include <stdlib.h>voidlogin(){intpasscode1;intpasscode2;printf("enter passcode1 : ");scanf("%d",passcode1);fflush(stdin);// ha! mommy told me that 32bit is vulnerable...
View Articlerandom
代码如下#include <stdio.h>intmain(){unsignedintrandom;random=rand();// random value!unsignedintkey=0;scanf("%d",&key);if((key^random)==0xdeadbeef){printf("Good!\n");system("/bin/cat...
View Articleshellshock
好吧,从这名字就知道是怎么回事儿了,前端时间爆出来的shellshock漏洞。我们需要执行cat flag就行。不过我开始试cat会说找不到文件,于是用/bin/cat了$ env x='() { :;}; /bin/cat flag' ./shellshock
View Article火车运煤问题
今天比赛有一道逻辑题,是这么说的(大意):小明要穿越荒野,距离目的地有600公里。他身上最多可以携带300单位的补给,而且每走1公里会消耗1单位的补给。假设他可以在中途任意设置补给点存放补给。那么要走600公里,出发点至少要有多少单位的补给?如果出发点有3300单位的补给,他最远能走多远?这类题目以前在网上看到过,不过当时是火车运煤。再次回顾整理了下,找到了思路。首先,小明肯定要多次折返,不断地把物...
View ArticleWhitespace programming language
今天做题遇到了一道很奇怪的题目。他给了一个cpp文件单看代码,似乎只是把普通的c++代码添加里很多tab,空格,并没有什么奇怪的地方。用g++编译后,执行得到说FROG_This_is_wrong_:(。看来是另有玄机。后来搜里下,找到了一种奇葩的编程语言,whitespace。具体在这里有更详细的介绍。简单地说,它是只考虑空白字符,通过特定的组合对应特定的指令。然后找这个语言的编译器,发现里这里有...
View Article第一次尝试APK的题目
今天遇到一道APK逆向的题目,难度应该是入门级别的。由于之前见到这类题目直接就放弃了,这样还是不太好,于是试着从头开始,查资料把这道题解决了。题目给的APK在这里。为了做这道题,我把apktool装好了,还翻墙把android...
View Article第一次尝试forensic的题目
话说最近在做的ksnctf里面的题目种类还真是丰富啊,今天遇到一道forensic的题目,也是第一次做这类题。题目给了一个img文件。我最开始是直接用mount挂载,发现有3个jpg文件,但分析不出来这些图片有没有隐写。后来在网上搜了下,这道提不是stegano,而是forensic。按照推荐,我安装了autospy,它还需要Sleuth...
View Article对加密的zip文件使用known plain text attack
这道题提示了说对zip文件使用known plain text attack,于是在网上搜了下,这里有一篇论文是关于这个的。具体论文就没有看了,直接找了现成的实现pkcrack。不过按照作者的要求,需要给他寄明信片,我没有寄诶……按照要求,破解还需要知道一部分plain...
View Articlewebhacking.kr challenge 5
打开页面,查看代码发现只有login可用,点击后来到一个登陆页面。试着登陆了下,发现需要登陆admin;而似乎没有找到注入。紧接着,发现可以直接浏览目录,在该目录下有另一个文件join.php,点进去发现什么都没有。于是查看代码,发现有混淆的js。通过将其内容打印出来,发现需要cookie和URL里包含一定内容才会显示表格。我们直接按照表格内容提交,发现可以注册。于是试着注册admin,但提示说已经...
View Articlewebhacking.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_encode($val_pw);...
View Article