历经曲折的writeup:实验吧<百米>

原题链接

上脚本:

#!/usr/bin/python3
# -*- coding:utf-8 -*-
#实验吧编程题_百米
import requests
import bs4
import re

url = "http://ctf5.shiyanbar.com/jia"
session = requests.session()
r = session.get(url)

soup = bs4.BeautifulSoup(r.content,'html.parser')#转换为BeautifulSoup对象
goal = [x for x in soup.p.div]#本题所需要的目标信息
goal2 = goal[0]#转换为字符串
g = eval(goal2.replace("x",'*'))转换为有效式

r2 = session.post('http://ctf5.shiyanbar.com/jia/index.php?action=check_pass',data ={'pass_key':g})
r3 = bs4.BeautifulSoup(r2.content,'html.parser')
print(r2.text)

特别注意:

本题脚本中的get和post一定要用session完成,因为用requests相当于重开网页,导致原页面丢失,上传数据无效,而用session就可与原网页保持连接。

其实还可以对代码进行优化,直接输出结果,做题时考虑到本题限时且网页原代码不多,暂未做优化

优化后如下

#!/usr/bin/python3

#实验吧编程题_百米
import requests
import bs4
import re

url = "http://ctf5.shiyanbar.com/jia"
session = requests.session()
r = session.get(url)

soup = bs4.BeautifulSoup(r.content,'html.parser')
goal = [x for x in soup.p.div]#本题所需要的目标信息
goal2 = goal[0]
g = eval(goal2.replace("x",'*'))

r2 = session.post('http://ctf5.shiyanbar.com/jia/index.php?action=check_pass',data ={'pass_key':g})
r3 = bs4.BeautifulSoup(r2.content,'html.parser')
#感谢我的师兄们提供的优化代码和讲解
maybe = ['flag','FLAG','Flag','key','KEY','Key']#设置flag可能的开头
for i in maybe:
    if i in str(r2.text):
        res = re.search(i,str(r2.text)).span()
        print("Maybe find flag ok")
        print(str(r2.text)[res[0]:int(res[-1])+8])
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,491评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,956评论 18 399
  • 这个越来越复杂,同时信息越来越畅通的世界里,你能够听到各种各样的声音。对于同一个问题,有来自各种维度、各种角度、各...
    小野与玫瑰阅读 4,910评论 2 3
  • 时间像一位匆匆的行者,裹挟着每个人来到了2017,让你措不及防,来不及回头,既让你感叹他的无情,又让你对过去...
    大嘶马阅读 4,344评论 2 51