题目描述:菜狗经过几天的学习,终于发现了如来十三掌最后一步的精髓
附件给了一个压缩包,伪加密,使用360解压缩成功解压。
解压后是一个文本文件,如下图,使用base64加密的一堆字符串,
单纯使用base64解密,得到的是一堆关于隐写术的介绍,再结合题目标题,考虑是base64隐写题。
根据base64隐写的原理可得出结论:
1、base64加密后结尾无“=”号的无隐写位。
2、base64加密后结尾有1个“=”号的有2位隐写位。
3、base64加密后结尾有2个“=”号的有4位隐写位。
编码思想:首先判断每行数据的可隐写位数,然后将可隐写的每行最后一个字符根据base64码表,对应到相应的值,接着转为二进制,根据可隐写位数截取相应的位数,然后拼接这些隐写位,最后从左到右每8位一组截取二进制,分别将其转为十进制并对应ASCII码表,打印出相应的字符即可得到flag。
给出Java代码:(,,,到目前做CTF的题都是使用Java,Python是玩CTF的主流语言,后面会开始使用Python,不知道有没有人也是用的Java搞ctf,,,,,,,,,,)
public class Misc_010 {
public static void main(String[] args) throws IOException {
String row=””; //存放行
String lastString=””; //存放最后一个字符
StringBuffer bin= new StringBuffer(); //存放隐写的二进制
String b=””;
String base64=”ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/”; //base64码表
FileReader file = null;
file = new FileReader(“E:\\CTF\\newhand\\a2eb7ceaf5ab49f7acb33de2e7eed74a\\stego1.txt”);
BufferedReader bReader=new BufferedReader(file);
row=bReader.readLine();
while(row != null){
if (row.contains(“=”)) {
if(row.contains(“==”)){
//两个等号
lastString=row.replace(“=”, “”).substring(row.length()-3);
b=Integer.toBinaryString(base64.indexOf(lastString));
if(b.length()>=4){
bin.append(b.substring(b.length()-4));
}
else{
DecimalFormat g1=new DecimalFormat(“0000”);
b= g1.format(Integer.valueOf(b));
bin.append(b);
}
}
else {
//一个等号
lastString=row.replace(“=”, “”).substring(row.length()-2);
b=Integer.toBinaryString(base64.indexOf(lastString));
if(b.length()>=2){
//System.out.println(b.substring(b.length()-2));
bin.append(b.substring(b.length()-2));
}
else {
DecimalFormat g1=new DecimalFormat(“00”);
b= g1.format(Integer.valueOf(b));
bin.append(b);
}
}
}
row=bReader.readLine();
}
//System.out.println(bin);//测试 打印隐写的二进制
for(int i=0;i<bin.length()-2;i+=8){
//每8位一组转换为十进制,并根据ASCII码表,强制转为字符,得flag System.out.print((char)Integer.parseInt(Long.toString(Long.parseLong(bin.substring(i, i+8),2))));
}
}
}
运行结果:
本题flag:flag{Base_sixty_four_point_five}
————————————————
版权声明:本文为CSDN博主「Rr.0」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/robacco/article/details/104829494
恐龙抗狼扛1年前0
kankan啊啊啊啊3年前0
66666666666666