[Writeup] web2利用PhantomJS解题

[复制链接]
查看927 | 回复3 | 2019-4-11 09:30:45 | 显示全部楼层 |阅读模式
题目如下:
1.png

思路:

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

抓了抓network 也没有什么发现

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

答案是可以的!

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

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

代码贴上来

  1. import sys
  2. import io
  3. from selenium import webdriver

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

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

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

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

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

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

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

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

  26. #提交成功网页截图
  27. browser.save_screenshot('bugkuctf_jisuanhou.png')
复制代码


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

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

2.png

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

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

评分

参与人数 1银两 +3 收起 理由
Harry + 3

查看全部评分

回复

使用道具 举报

sx234com | 2019-4-11 09:37:05 | 显示全部楼层
自己回复下?
回复

使用道具 举报

donghui09 | 2019-4-16 05:38:06 | 显示全部楼层
遇过到这样的题,没做上来。
回复

使用道具 举报

Mr.轻熟男 | 2019-4-26 15:09:02 | 显示全部楼层
~不走寻常路啊~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

2

主题

6

帖子

119

积分

小有名气

Rank: 3Rank: 3

积分
119