python 计算器 eval ctf_python 的eval函数
python中的eval()函數(shù)是用來計算所有數(shù)學(xué)的代數(shù)計算式,這樣可以很快得到復(fù)雜代數(shù)式的結(jié)果。
例如: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題:秋名山老司機(jī)
進(jìn)去發(fā)現(xiàn)是計算一個很復(fù)雜的代數(shù)式,且要求2秒,那么肯定要用腳本來跑
且刷新了幾下發(fā)現(xiàn)要用post來提交答案,答案的值賦值給value。
那么直接上代碼,先正則匹配出里面的代數(shù)式,然后再用eval進(jìn)行求和,將結(jié)果賦值給value,然后再進(jìn)行post發(fā)包,data就是value和它的值,然后輸出響應(yīng)包的數(shù)據(jù)。
importreimportrequests
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()等這些計算函數(shù)。
總結(jié)
以上是生活随笔為你收集整理的python 计算器 eval ctf_python 的eval函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (附源码)python电影院信息管理系统
- 下一篇: python卸载不了