原创

bugku web2利用PhantomJS解题

file

思路:

每隔几秒钟页面的公式就会刷新,傻傻的试了几次,发现手速还是不行

抓了抓network 也没有什么发现

静下来想了想,能不能让我们的pc自己计算出来并且提交呢?

答案是可以的!

简单的思路是:利用类似爬虫技术爬取页面,将页面中的公式爬取出来,爬出来公式经过计算后,填写到输入框中提交 获得flag。

所以我使用了PhantomJS+selenium 实现这一功能

代码贴上来:

import sys
import io
from selenium import webdriver

sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf8') #改变标准输出的默认编码

#建立Phantomjs浏览器对象,括号里是phantomjs.exe在你的电脑上的路径
browser = webdriver.PhantomJS('C:/phantomjs/bin/phantomjs.exe')

#ctf题页面
url = 'http://123.206.31.85:10002/'

# 访问题目页面
browser.get(url)

# 等待一定时间,让js脚本加载完毕
browser.implicitly_wait(5)

#识别数据公式
jisuan_text = browser.find_element_by_xpath("//body/p")
print(jisuan_text.text) #显示截取的公式文本信息
result=eval(jisuan_text.text[28:].strip())
print(result) #显示计算结果
#输入计算结果
username = browser.find_element_by_name('result')
username.send_keys(result)

#网页截图 截取输入结果过程图
browser.save_screenshot('bugku_jisuanqian.png')

#点击“提交”按钮
login_button = browser.find_element_by_xpath("//input[@type='submit']")
login_button.click()

#提交成功网页截图
browser.save_screenshot('bugkuctf_jisuanhou.png')

代码运行以后,自动将截取的成功图片保存,打开图片,flag立显!!!

程序自动爬取到页面公式并进行计算后填入到输入框中的过程快照:

file

程序自动提交计算结果后等到的flag快照:

file

本题使用了其他的方法进行解题,思路进行了一些更新,比较coder思维,毕竟为了解题嘛,开心就好!

正文到此结束
该篇文章的评论功能已被站长关闭
本文目录