Bugku_Web18_秋名山车神
1.查看源码
<head>
<title>下面的表达式的值是秋名山的车速</title>
<meta charset="UTF-8">
</head>
<p>亲请在2s内计算老司机的车速是多少</p>
<div>373719747-1878154638-1233431774-1476346255*1056350133+1218001988+1332727283*746947109*406838675*343521773+1142418537=?;</div>
<style>
div,p{text-align: center;
margin: 0 auto;
}
</style>
查看源代码可以知道这里,我们如果自己把数字复制到代码里面算,然后再用工具post,肯定不可能两秒内完成,除非手速无敌。所以我们这里需要使用脚本,获取post后的结果。
这里我直接附上脚本代码
import requests
from lxml import etree
s=requests.Session()
url='http://114.67.246.176:15457'
response = s.get(url).text
x=etree.HTML(response)
path=x.xpath('//div/text()')
z="".join(path[0])[:-3]
z=eval(z)
data={'value':z
}
flag=s.post(url,data).text
print(flag)
下面再来对原理的分析。
2.Requests库和lxml库的一些知识
(1). Requests库
1.requests.get(url)方法。
2.requests.post(url,构造的参数值)。
3.参数值构造的格式:data{‘要传参的变量名’:参数值}4.这里只列举的大概,想了解的更详细可以查看我学习时的博客:https://blog.csdn.net/baidu_41871794/article/details/83904024
这里我们需要使用Requests库中的get方法获取div标签中的内容,但是我们通过requests.get(url).text只能获取所有的源代码信息,不能单独取出div标签的内容,如果你足够耐心,也可以通过数组方式一个一个读出来,因为text是一个字符串,所以你可以耐心的一个一个数的方式,或者通过字符串匹配的方式,将div标签中的内容拿出来,但是那会非常的麻烦,有没有更简单的方法呢,这里就需要用到lxml库中的etree类。
(2).etree类
想看详细的去这个网址看看https://www.cnblogs.com/fightccc/p/10808590.html
这里直接上代码解释
import requests
from lxml import etree
r=requests.get("http://www.baidu.com")
html = etree.HTML(r.text) # 调用HTML类进行初始化resultAll = html.xpath('//*') #选取所有节点
#print("获取所有节点:",resultAll)
resultDivAll = html.xpath('//div') #选取div子孙节点
#print("获取div所有节点:",resultDivAll)
resultDiv_img = html.xpath('//div/img') #选取div下img节点
#print("获取div节点下img节点:",resultDiv_img)
resultDiv_imgSrc = html.xpath('//div/img/@src') #获取div_img的src属性值
print("获取div节点下img的src值:",resultDiv_imgSrc)
使用这种方法就可以获取div标签的内容。
但是注意这里获得的值是一个对象数组,
如果直接输出结果,会发现是一些地址,
所以需要这样构造’//div/text()’
我的理解是在这个对象里面调用text()方法。
通过上面的了解。
我们就可以得到div标签里的内容了。
现在我们要做的就是计算我们得到的字符串的式子的结果。
首先我们需要先对得到的字符串进行进一步的处理
z="".join(path[0])[:-3]
这里还有另一种写法
z="".join(path[0][:-3])
path[0]也可以写成path,再这里是一样的,因为我们这里数组就一个元素。
这两种写法是一样的。
原因是path变量是我们通过利用etree获得的字符串数组,他保存了标签下的所有节点。
处理后我们就可以调用eval()方法来执行z的内容。
就可以得出式子结果,
最后再利用Requests.post()方法,就可以得到返回结果的网页,然后再用方法中的text变量,将页面的源码放出来,就可以看到flag。
这题可能是由于服务器问题,需要跑多几次,有些时候,返回的页面是空的,有些时候你就可以看到flag。
Bugku_Web18_秋名山车神相关推荐
- 人人都是秋名山车神——Unity实现简化版卡丁车漂移
人人都是秋名山车神--Unity实现简化版卡丁车漂移 大家好. 前一阵子,Unity出了个名为Karting Microgame的教程项目,里边有一个赛车小游戏示例场景,行驶.转弯.漂移等主要功能都几 ...
- Bugku web19秋名山车神
Bugku web18秋名山车神 前言 一.知识补充 1.正则表达试补充 2.re 函数介绍 二.web 19 解题过程 三 .秋名山车神 总结 文章目录 前言 一.知识补充 1.正则表达试补充 2. ...
- 从脚本学python(秋名山车神)
最近做bugku的时候,做到秋名山车神那题,连python都不会(泪)很惭愧 https://zhuanlan.zhihu.com/p/141333473 脚本代码来自上面这个writeup impo ...
- BugkuCTF web18_秋名山车神 writeup
web18_秋名山车神 原题链接 key:python脚本 ①题目环境里的网页长这样式的
- BuKu web18 秋名山车神
BuKu web18 秋名山车神 显然这道题是编写脚本,废话不多说直接上代码: import bs4,requests from lxml import html from bs4 import Be ...
- bugku 秋名山车神
get新知识:一些有关python爬虫的基本知识 解题部分 题目中都是这样的大数字进行计算,并且需要短时间内计算,所以这不得不使用脚本进行解题,脚本如下 #bugku 秋名山车神 --爬虫练习 imp ...
- [bugku]-秋名山车神详解
解题 每一次刷新都不一样 post传参value 脚本1 import requests import re url = 'http://114.67.175.224:10053/' s = requ ...
- bugku秋名山车神
python import requests import re url = 'http://123.206.87.240:8002/qiumingshan/' s = requests.Sessio ...
- 【CTF bugku 秋名山车神】关于会话脚本、session、正则表达式
题目描述 题目链接 多刷新几遍,发现一个传参变量value,下边开始解题 解题思路 本题考验脚本能力,手动提交?哼,不存在的 题目多次刷新,出现要提交的参数:value 在这里插入图片描述 这么长的数 ...
最新文章
- LeetCode简单题之数组中两元素的最大乘积
- C语言文件最后一行重复储存,求大佬看看,我这个程序为什么保存进文件只有最后一行...
- Python学习笔记《Python核心编程》第4章Python对象
- [Step By Step]SAP HANA PAL指数回归预测分析Exponential Regression编程实例EXPREGRESSION(模型)...
- 工作与生活 -- 平衡是必须的
- python读取数据库数据、并保存为docx_Python - 爬取博客园某一目录下的随笔 - 保存为docx...
- python程序设计知识点汇总_Python入门知识点汇总
- 使用Spyder控制台(console)执行带参数脚本和带参数的debug模式
- 大事件归来,爷青回!
- idea Terminal配置cmder(增加nodejs,git配置,jdk本地环境)
- 必读的Python入门书籍,你都看
- adprw指令通讯案例_PLC编程入门,编写控制程序必掌握选型指令
- 第四届泰迪杯数据挖掘挑战赛B题数据预处理-数据导入(Matlab)
- easyui datagrid deleteRow(删除行)的BUG或者updateRow值更新了不展示问题
- numpy之histogram
- 成为认知高手,要避免这9个认知思维陷阱!
- (转贴) 亦卷亦舒
- 深入理解Java虚拟机——运行时栈帧结构(局部变量表)
- 2 Day DBA-管理方案对象-监控和优化数据库-查看度量和阙值
- logit模型应用实例_广义线性模型应用举例之beta回归及R计算
热门文章
- AEJoy —— 如何让你的 AE 插件 适应每通道 8,16,32 位颜色
- 你是人间的四月天(3)
- matlab调用R给散点图画95%置信椭圆(95% confidence ellipse in a scatterplot)
- Android OpenMobileAPI、OMA、智能卡开发总结
- 云服务器SNAT访问互联网
- ChatGPT简要解读(一) - 原理分析与性能提升篇
- 一键生成各种姿势的火柴人gif:在线录制真人视频即可转换 | 代码开源
- 医学图像分割UNet
- 量子力学 Schrodinger 方程的简单导出
- 2021-11-15----韩顺平Java入门第九天