这是我第一次真正意义的的WP。有技术含量的大神们写了,我也只能写这样的了。

进入正题。

点开链接,只有一个form。老规矩--F12,如图
西普CTF-绕-以夕阳落款

发现一段JS,不过代码混淆了。细看下最后一句是eval(_),那直接把代码放到console里,将eval(_)替换成console.log(_),再上图。

西普CTF-绕-以夕阳落款
西普CTF-绕-以夕阳落款

代码调整后如下

function $(){
  var e=document.getElementById("c").value;
  if(e.length==16)
    if(e.match(/^22a60b/)!=null)
      if(e.match(/0b310/)!=null)
        if(e.match(/e5ece$/)!=null)
          if(e.match(/0ebe5/)!=null){
            var t=["U2FsdG","S481hY","7lo/","IBh2Waw=="];
            var n=["VkX182","9lDS37","Dtcv78qFew"];
            var r=["eA/","kNjZ1UZ","6LuMTMoP2"];
            var i=["8U/2KZ","tCckgQoGA","mEapD0Y"];
            var s=[t,n,r,i];
            for(var o=0;o<13;++o){
              document.write(s[o%4][0]);
              s[o%4].splice(0,1)
            }
          }
}

function中的代码主要检查form提交的数据,如果符合条件进行一些字符串的操作。我们现在就是需要操作后的字符串。这里有两个方法:
1.将字符串操作代码直接放进console,有没有看到document.write(s[o%4][0]);我们想要的信息会直接显示在页面中。

2.在form中提交符合规则的数据。其实这个规则检查很简单,符合的串只有一个:22a60b310ebe5ece。

我是直接放console里了。
得到加密串为:
U2FsdGVkX182eA/8U/2KZS481hY9lDS37kNjZ1UZtCckgQoGA7lo/Dtcv78qFew6LuMTMoP2mEapD0YIBh2Waw==

以U2FsdGVkX1开头,那就是对称加密了,AES、DES等中的一种。那密钥呢?

找了半天,页面里没有隐藏密钥的地方。我们又回到出题者的TIP:把出题人的名字拿去加密。可是出题者名字只有7字节。
我试了添加一字节,进行DES解密,无果。

忽然想起form提交的数据:22a60b310ebe5ece。16字节,而且看似md5加密。试了下,果然是,如图。

西普CTF-绕-以夕阳落款

这个符合TIP了。
直接解密得到flag。

PS:有时候偷懒是不好的,如果在获取加密串的时候用第一个方法,解出符合规则的字符串,那就没有后来的那么多事了。
Flag:

温馨提示: 此处内容需要评论本文后刷新才能查看,支付2元即可直接查看所有Flag。

小广告:关于获取西普实验吧所有Writeup请点击这里查看索引

查看所有Flag需要付费,需要获取所有Flag的童鞋请访问这里成为付费用户,可以自助把自己的注册邮箱加入网站白名单,即可免回复看到本站所有Flag

Flag大全地址:所有Flag

PS:本站不是实验吧的官方站点,纯粹是个人博客,收取Flag费用仅是维持服务器费用,做站不易,且行窃珍惜,如果喜欢我的博客,愿意捐赠的,可以扫描下面的二维码

微信二维码:
支付宝二维码: