看我回旋踢

题目:synt{5pq1004q-86n5-46q8-o720-oro5on0417r1}
答案: flag{5cd1004d-86a5-46d8-b720-beb5ba0417e1}
写完了就尴尬了,发现一个问题:写题开头的思路就是错的 回旋踢好像和rot13有关然后发现做题的过程好像是错的然后了解rot13是凯撒密码的一种情况就是+13的位移,比较特别的是两个可以互相转换(通过13的偏移),回旋踢的意思可能就是和这个有关吧
下面开始解题:

  1. 注意到这一串文字很像flag{xxx},synt和flag都是四个字母相差13
  2. 刚开始用表单的关键词在线解密的原网址post提交的时候,显示的代码没有答案;
  3. 然后用bp就发现post到了别的网址和其他的关键词

如图:
图注:原网址:http://www.nicetool.net/app/caesar.html

疑惑有这么俩点:

  1. 这次是想根据网页源码提交,然后输入对应的"name":“xx”,状态码可以显示200,不会显示500,405等出错,而且bp里的post数据"name"和原本网页的"name"不一样
  2. 我拿原来摩斯密码的那个网页用bp抓包重新看了一下,确实post到了当前网页。所以就纠结是不是因为网页直接写好后台了,然后数据直接post给自己本网页;然后做这道凯撒密码题的时候,确是把信息post给自己后台再传回本网页吗
  3. 前一个url的原网址是:http://www.atoolbox.net/Tool.php?Id=778
    第二个代码的原网址是:http://www.nicetool.net/app/caesar.html

第一个网址:

import requests
from bs4 import BeautifulSoup
url = "http://ctf.ssleye.com/ctf/caesar_decrypt"#第一个抓包post的网址
data = {
       'text':'synt{5pq1004q-86n5-46q8-o720-oro5on0417r1}',
       'key':'13',
        }

r = requests.post(url,data=data)
r.encoding = r.apparent_encoding
print(r.status_code)
soup = BeautifulSoup(r.text,'html.parser')
result = soup.find('pre')
print(result.string)

用另一个网址:

import requests
from bs4 import BeautifulSoup
header = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101'}
url= "http://www.atoolbox.net/Api/GetCaesarCipherEncode.php"#第二个网址
data = {
       'code':'synt{5pq1004q-86n5-46q8-o720-oro5on0417r1}',
       'key':'13',
        }
r = requests.post(url,data=data)
r.encoding = r.apparent_encoding
print(r.status_code)
print(r.text)

再次回顾原来的两个网页,其中一个突然出现了一个叫"框架源代码"的东西,浏览后发现里边表单的post数据和最后提交的信息是一样的,之前说的数据不一样的代码是叫"网页源代码"而且这里边有的input标签没有name元素,所以当时写的比较难受。
然后现在还是不明白这个提交数据的过程到底是怎么实现的
![网页源代码](view-source:http://www.nicetool.net/app/caesar.html)
![框架源代码](view-source:http://ctf.ssleye.com/nt_caesar.html)