-->
当前位置:首页 > DayDayUp > 正文内容

[WP] Hackergame 2019 没有BUG的教务系统 1

Luz5年前 (2019-10-17)DayDayUp3913

image.png



image.png


查看源码发现程序对输入进行了一系列加密操作

        temp_password[i] = ((temp_password[i] | temp_password[i + 1]) & ~(temp_password[i] & temp_password[i + 1]) | i) & ~((temp_password[i] | temp_password[i + 1]) & ~(temp_password[i] & temp_password[i + 1]) & i)

最后与一个序列进行比较


加密每个字节使用了字节本身与它后面的那个字节 因此这题要从后往前推


程序给输入加了一个'\x00'


因此最后一个字节是'\x00'


编写脚本依次爆破前面的字节

#include<stdio.h>
int main(){
	char temp_password[2];
	int key[]={0x44,0x00,0x02,0x41,0x43,0x47,0x10,0x63,0x00};
	temp_password[0]=0;
	int k=7;
	for(int j=0;j<=7;j++){
	for(int i=1;i<128;i++){
		temp_password[0]=i;
		temp_password[0] = ((temp_password[0] | temp_password[0 + 1]) & ~(temp_password[0] & temp_password[0 + 1]) | k) & ~((temp_password[0] | temp_password[0+ 1]) & ~(temp_password[0] & temp_password[0+ 1]) & k);
//		printf("%d ",temp_password[0]);
		if(temp_password[0]==key[k]){
			printf("%c",i);
			temp_password[1]=i;
			k--;
			break;
		}
	}
	
}
  
}


image.png


输出是倒过来的,我们需要再给它倒一下


flag{p455w0rd}

标签: REVERSE

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。