当前位置: 首页>編程日記>正文

西普CTF训练(programe部分分析)

西普CTF训练(programe部分分析)

1、计算题 http://ctf8.simplexue.com/jia/
页面在不断刷新,要求在3秒内提交答案,手工是无法在短时间内完成的,可以通过程序计算并自动提交。
可通过js,也可通过python,python稍微麻烦点。简便的是通过浏览器console口执行下列语句,自动计算并提交得到结果。
js代码如下,打开题目页面,F12在chome console口执行即可:

a=document.getElementsByName("my_expr")[0].innerHTML;
a=a.replace('x','*');//将x替换为*
a=a.replace('x','*');//替换2次
document.getElementsByName('pass_key')[0].value=eval(a);//执行并写入框中
document.getElementsByTagName('input')[1].click();//点击提交按钮

2、验证码识别计算 http://ctf8.simplexue.com/codeBMP/
压缩包中共9999个文件,每个文件都是一个4位数的验证码,要求用验证码数字乘以文件名数字得到的总和。
验证码识别可用tesseract-ocr,下载调用脚本pytesseract。
由于tesseract识别准确率很低,需要进行训练学习,学习方式详见http://blog.csdn.net/firehood_/article/details/8433077#
学习之后将生成的data拷到对应tesseract目录中,然后就可以运行了,计算结果是250686552492。
注意:有可能部分号码识别不准确,需要输出到文件中再拷贝到excel中核对,每个验证码均为四位数,若出现小于四位数或非数字,需要手动校正并重新计算。
python代码如下:

# -*- coding: utf-8 -*-
#识别验证码
try:from pytesseract import *from PIL import Imageimport osimport timeimport random
except ImportError:print '模块导入错误,请使用pip安装,pytesseract依赖'raise SystemExitdef vcode(picname):"python验证码识别函数"image=Image.open(picname)filename='%d.tif'%(random.randint(10, 100)) #由于文件操作可能冲突,随机生成文件名,减少冲突概率image.save(filename)#time.sleep(0.01)image=Image.open(filename)im = image_to_string(image,'num',False,config="-psm 8")#time.sleep(0.01)#os.remove(filename)im = im.replace(' ', '')if im != '':return imelse:return ''def ListFilesToTxt(dir,wildcard,recursion):file1 = open('test1.txt','w')exts = wildcard.split(" ")files = os.listdir(dir)num=0datasum=0for name in files:fullname=os.path.join(dir,name)if(os.path.isdir(fullname) & recursion):1#ListFilesToTxt(fullname,wildcard,recursion)#递归调用else:for ext in exts:if(name.endswith(ext)):#print fullname#file.write(name + "\n")filedata=int(name[0:name.find('.bmp')])codedata=int(vcode(fullname))datasum+=filedata*codedatastr1='%d:%d:%d:%s'%(num,codedata,datasum,name)print str1file1.write(str1+'\n')num+=1breakfile1.close()return datasumtry:dir="script\\python\\bmp"#pathwildcard = ".bmp .jpg"print ListFilesToTxt(dir,wildcard, 1)except KeyboardInterrupt:raise SystemExit('爷,按您的吩咐,已成功退出!')

3、考考你的程序功底 http://ctf1.simplexue.com/program/1/
题目给了一个图片,是一个20*20的矩阵,首先要进行OCR识别,提取出来数据来。推荐用www.newocr.com/来识别提取数据,提取后要修改一下,主要是部分4识别为1了,手动核对修改一下。
计算方法是沿着每行、每列、每个对角线来进行查询计算,得到结果
70600674
[12, 6]
最大乘积结果为70600674,得到KEY:IL0V3Pr0Gr4m@#!!
python代码如下:

# -*- coding: utf-8 -*-
f=open(u'num.txt','r')
"填充数据到矩阵中"
matrix=[[0 for i in range(20)] for j in range(20)]
row=0
for cl in f:xx=cl.split(' ')col=0for inn in xx:matrix[row][col]=int(inn)col+=1row+=1tmpNum=0#计算值
tmpm=[0,0]#对应的行列起始位置
"行"
for rows in range(20):for cols in range(17):tmp=1;  for dd in range(4):tmp*=matrix[rows][cols+dd]if tmp>tmpNum:tmpNum=tmptmpm=[rows,cols]
"列"
for cols in range(20):for rows in range(17):tmp=1;  for dd in range(4):tmp*=matrix[rows+dd][cols]if tmp>tmpNum:tmpNum=tmptmpm=[rows,cols]
"对角线1"
for xjj in range(-16,16,1):#if xjj<=0:rowst=0colst=0-xjjelse:rowst=xjjcolst=0while True:rowst+=1colst+=1if rowst>16 or colst>16:breaktmp=1for dd in range(4):tmp*=matrix[rowst+dd][colst+dd]if tmp>tmpNum:tmpNum=tmptmpm=[rowst,colst]
"对角线2:逆对角线"
for xjj in range(-16,16,1):if xjj<=0:rowst=0colst=19+xjjelse:rowst=xjjcolst=19while True:rowst+=1colst-=1if rowst>16 or colst<3:breaktmp=1for dd in range(4):tmp*=matrix[rowst+dd][colst-dd]if tmp>tmpNum:tmpNum=tmptmpm=[rowst,colst]print tmpNum #打印最大值结果
print tmpm #打印所在的行和列

4、算术题:http://ctf1.simplexue.com/program/2/
题目比较明确,只需填10个数,搜索即可,满足条件:10个数各不相同。
经过搜索找到最大的串为6531031914842725,输入后得到key:IL0V3Pr0Gr4ming_###)
代码比较简单,基本是循环,判断,跑出的数复制到excel排个序即可,图中每个数位置如下图:
变量所在的位置图示
python代码如下:

def printnum(a,b,c,d,e,f,g,h,i,j):tmp=atmp=min(a,d,f,g,j)if tmp==a:print '%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d'%(a,b,c,d,c,e,f,e,h,g,h,i,j,i,b)elif tmp==d:print '%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d'%(d,c,e,f,e,h,g,h,i,j,i,b,a,b,c)elif tmp==f:print '%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d'%(f,e,h,g,h,i,j,i,b,a,b,c,d,c,e)elif tmp==g:print '%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d'%(g,h,i,j,i,b,a,b,c,d,c,e,f,e,h)elif tmp==j:print '%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d'%(j,i,b,a,b,c,d,c,e,f,e,h,g,h,i)
for a in range(1,11,1):for b in range(1,11,1):if b==a:continuefor c in range(1,11,1):if c in [a,b]:continuefor d in range(1,11,1):if d in [a,b,c]:continuefor e in range(1,11,1):if e in [a,b,c,d]:continuefor f in range(1,11,1):if f in [a,b,c,d,e]:continuefor g in range(1,11,1):if g in [a,b,c,d,e,f]:continuefor h in range(1,11,1):if h in [a,b,c,d,e,f,g]:continuefor i in range(1,11,1):if i in [a,b,c,d,e,f,g,h]:continuefor j in range(1,11,1):if j in [a,b,c,d,e,f,g,h,i]:continueif a+b+c==d+c+e==f+e+h==g+h+i==j+i+b:printnum(a,b,c,d,e,f,g,h,i,j)

5、简单仿射变换:http://www.simplexue.com/ctf/examctfdetail/717
题目给了公式y=5*x+11对某明文进行变换得到字符串xztiofwhf,只要得到x–>y的映射即可。
js代码如下:

function fff(a,b)
{
var dic={};for(i=0;i<26;i++)
{dic[String.fromCharCode((a*i+b)%26+97)]=String.fromCharCode(i+97);
}return dic;
}pwd="xztiofwhf";
pwd_dic=fff(5,11);
str="";
for(j=0;j<pwd.length;j++)
{str+=pwd_dic[pwd[j]];
}
console.warn(str);


https://www.fengoutiyan.com/post/14175.html

相关文章:

  • 博普cta多策略2号
  • 罗伯特帕克评分官网
  • 斯特鲁普测试
  • 普乐普心理ct
  • 罗伯特帕克评分查询
  • ctf训练营
  • 鏡像模式如何設置在哪,圖片鏡像操作
  • 什么軟件可以把圖片鏡像翻轉,C#圖片處理 解決左右鏡像相反(旋轉圖片)
  • 手機照片鏡像翻轉,C#圖像鏡像
  • 視頻鏡像翻轉軟件,python圖片鏡像翻轉_python中鏡像實現方法
  • 什么軟件可以把圖片鏡像翻轉,利用PS實現圖片的鏡像處理
  • 照片鏡像翻轉app,java實現圖片鏡像翻轉
  • 什么軟件可以把圖片鏡像翻轉,python圖片鏡像翻轉_python圖像處理之鏡像實現方法
  • matlab下載,matlab如何鏡像處理圖片,matlab實現圖像鏡像
  • 圖片鏡像翻轉,MATLAB:鏡像圖片
  • 鏡像翻轉圖片的軟件,圖像處理:實現圖片鏡像(基于python)
  • canvas可畫,JavaScript - canvas - 鏡像圖片
  • 圖片鏡像翻轉,UGUI優化:使用鏡像圖片
  • Codeforces,CodeForces 1253C
  • MySQL下載安裝,Mysql ERROR: 1253 解決方法
  • 勝利大逃亡英雄逃亡方案,HDU - 1253 勝利大逃亡 BFS
  • 大一c語言期末考試試題及答案匯總,電大計算機C語言1253,1253《C語言程序設計》電大期末精彩試題及其問題詳解
  • lu求解線性方程組,P1253 [yLOI2018] 扶蘇的問題 (線段樹)
  • c語言程序設計基礎題庫,1253號C語言程序設計試題,2016年1月試卷號1253C語言程序設計A.pdf
  • 信奧賽一本通官網,【信奧賽一本通】1253:抓住那頭牛(詳細代碼)
  • c語言程序設計1253,1253c語言程序設計a(2010年1月)
  • 勝利大逃亡英雄逃亡方案,BFS——1253 勝利大逃亡
  • 直流電壓測量模塊,IM1253B交直流電能計量模塊(艾銳達光電)
  • c語言程序設計第三版課后答案,【渝粵題庫】國家開放大學2021春1253C語言程序設計答案
  • 18轉換為二進制,1253. 將數字轉換為16進制
  • light-emitting diode,LightOJ-1253 Misere Nim
  • masterroyale魔改版,1253 Dungeon Master
  • codeformer官網中文版,codeforces.1253 B
  • c語言程序設計考研真題及答案,2020C語言程序設計1253,1253計算機科學與技術專業C語言程序設計A科目2020年09月國家開 放大學(中央廣播電視大學)
  • c語言程序設計基礎題庫,1253本科2016c語言程序設計試題,1253電大《C語言程序設計A》試題和答案200901
  • 肇事逃逸車輛無法聯系到車主怎么辦,1253尋找肇事司機