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。哦,对了,源码
:::
:::
:::