BC13
题目:两秒提交由xx拼接的数值。
分析:一开始我想岔了,以为要用到opencv等图形库来判断图形,类似验证码识别。
方向错了,验证码识别是图形判断。但这个题目里,其实这还是文字么。。。然后看源码。
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
html:超文本标记语言。$nbsp代表空格的意思,<br />代表换行。
于是我们可以搜集到各个数字对应的源代码。
通过编程,将源代码输出为对应的数字,提交给题目即可。
知识点一:requests模块,post提交参数
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
url = 'http://ctf5.shiyanbar.com/ppc/acsii.php\'
s = requests.Session()
a=s.get(url)
post = {'inputNumber':result}
post是我们要提交的表单参数,result是我们计算出的结果。r = s.post(url,data=post) 提交结果
print r.content 输出提交后网页内容
知识点二:re.sub()可以将源码替换为相应的数字。python源码1
通过复制源代码,然后在本地建立html文件,用浏览器打开的方式,可以最终建立数字与源码的对应关系。
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
知识点三:re.findall('\d<br/>','文本')
查找字符串是数字后接换行号的。
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
知识点四:join函数,将列表元素进行组合。
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
Str1 = ''.join(result1) result1是一个序列
print Str1
然后提交就得到了flag。哦,对了,源码。
:::
:::
:::