zoukankan      html  css  js  c++  java
  • python 的eval函数

    python中的eval()函数是用来计算所有数学的代数计算式,这样可以很快得到复杂代数式的结果。

    例如:383660347*375705824-1796136991-1726898699*1899420019*1700897586*642532444-2073968155+592065376+1145982995+178738053=

    >>>eval('383660347*375705824-1796136991-1726898699*1899420019*1700897586*642532444-2073968155+592065376+1145982995+178738053')
    >>>-3584768377397114585976975169312809498

    这里记录一个bugkuctf的web题:秋名山老司机

     进去发现是计算一个很复杂的代数式,且要求2秒,那么肯定要用脚本来跑

     且刷新了几下发现要用post来提交答案,答案的值赋值给value。

    那么直接上代码,先正则匹配出里面的代数式,然后再用eval进行求和,将结果赋值给value,然后再进行post发包,data就是value和它的值,然后输出响应包的数据。

    import re
    import requests
    
    headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36'}
    url='http://123.206.87.240:8002/qiumingshan/'
    s=requests.session()
    response=s.get(url,headers=headers)
    res_conte=re.search(r'(d+[+-*])+d+',response.content.decode())
    num=eval(res_conte.group())
    datas={'value': num}
    response_post=s.post(url,headers=headers,data=datas)
    print(response_post.content.decode())

     flag就出来了!

    其实很多ctf赛事都要考察python的计算能力,也就要用到eval()等这些计算函数。

  • 相关阅读:
    python不同包之间调用时提示文件模块不存在的问题
    adb shell 查看内存信息
    adb shell top 使用
    Android读取logcat信息
    父类的引用对象指向子类的对象
    我的阿里梦——淘宝前端必备技能
    我也做了一个1/4圆形菜单
    可编辑tab选项卡
    canvas 之
    canvas之----浮动小球
  • 原文地址:https://www.cnblogs.com/-chenxs/p/11654532.html
Copyright © 2011-2022 走看看