记事本

shellshock

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

random

代码如下 #include <stdio.h> int main(){ unsigned int random; random = rand(); // random value! unsigned int key=0; scanf("%d", &key); if( (k...

passcode

代码如下 #include <stdio.h> #include <stdlib.h> void login(){ int passcode1; int passcode2; printf("enter passcode1 : "); scanf("%d", passcode1); ...

input

代码如下 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/socket.h> #include <arpa/inet.h> int main(int argc, char* argv[], char* envp[]){ ...

flag

直接用IDA打开,居然连输出的字符串都找不到…于是通过strings发现文件是被UPX压缩了。下载UPX,用upx -d flag解压缩后,直接找到flag地址。或者再用strings

collision

代码如下 #include <stdio.h> #include <string.h> unsigned long hashcode = 0x21DD09EC; unsigned long check_password(const char* p){ int* ip = (int*)p; int i; int res=...

bof

代码如下 #include <stdio.h> #include <string.h> #include <stdlib.h> void func(int key){ char overflowme[32]; printf("overflow me : "); gets(overflowme); if(key == 0x...

unexploitable

这次是500分的rop #include <stdio.h> void main(){ printf("Not all the bugs are exploitable.\n"); printf("Try to exploit this one and you will see.\n"); printf("Or.. maybe y...

fd

1分的题…… #include <stdio.h> #include <stdlib.h> #include <string.h> char buf[32]; int main(int argc, char* argv[], char* envp[]){ if(argc<2){ printf("pas...

ELF segments and sections

有时候需要搞明白ELF文件里哪些部分是可写的,之前一直是稀里糊涂的,没有仔细去研究。今天稍微看了一下manpage,并动手试了下,大概明白了segments和sections之间的关系。 以下内容是基于我自己的理解写的,所以有些部分可能并不准确。 首先是两个概念,segments和sections,这两个是完全不同的。ELF文件除了ELF header,还有program header和...