小結一波CTF裡面可能用到的指令碼

2021-08-16 23:11:56 字數 3568 閱讀 5654

本人渣渣,只是為了總結自己的學習過程,請大佬莫噴

有時候題目會讓你把base全家桶用上,你就可以像下面這樣

import base64

str1 = 'your string'

print base64.b64decode(str1)

print base64.b32decode(str1)

print base64.b16decode(str1)

專門用於快速提交網頁所需要的東西或者是多次訪問你提交的東西

參考文章:

一般都是下面的形式

import requests

url = 'your url'

s = requests.session()

r = s.get(url)

str1 = r.headers['flag'].split(':')[1] #抓包看清楚是啥才行,有可能不是flag,是其他的

data =

print s.post(url,data).text

print s.post(url,data).content

有時候要你盡可能快,可能你得盡量縮小**量達到更快的效果

運用正則re

下面是一道匹配正確md5題目所寫出來的

import re

md51 = 'your wrong md5'

pattern = r'[1-9a-z]'

str1 = ''

for i in md51:

if re.search(pattern,i):

str1 = str1+i

print str1

import md5

import string

for i in

string.uppercase:

for j in

string.uppercase:

for k in

string.uppercase:

a='tasc'+i+'o3rjmv'+j+'wdjkx'+k+'zm'

b=md5.md5(a).hexdigest()

if(b[0:5]=='e9032'):

print b

md5.md5(s)

返回字串s的md5
md5.update(arg)

用string引數arg更新md5物件。即將要計算arg的訊息摘要值。
md5.digest()

返回16位元組的摘要,由傳給update的string生成,摘要沒有ascii字元
md5.hexdigest()

以16進製制的形式返回摘要,32位
還有一種hashlib,這東西好像是py3只能用它了,我試了一下,好像不怎麼行,跑不出答案。。。但是它功能很強大,還有sha1演算法啥的

import hashlib 

import string

for i in

string.uppercase:

for j in

string.uppercase:

for k in

string.uppercase:

a = 'tasc'+i+'o3rjmv'+j+'wdjkx'+k+'zm'

#c = hashlib.new('md5', string=a).hexdigest()

b = hashlib.md5(a)

c = b.hexdigest()

if(c[0:5]=='e90032'):

print c

import binascii

import string

dic=string.printable #各種列印字元

crc = '''你的輸入 '''

# 記得要以0x開頭

defcrackcrc

(crc):

for i in dic :

for j in dic:

for p in dic:

for q in dic:

s=i+j+p+q

if crc == (binascii.crc32(s) & 0xffffffff):

print s

在 python 2.x 的版本中,binascii.crc32 所計算出來的 crc 值域為[-2^31, 2^31-1] 之間的有符號整數,為了要與一般crc 結果作比對,需要將其轉為無符號整數,所以加上& 0xffffffff來進行轉換。如果是 python 3.x 的版本,其計算結果為 [0, 2^32-1] 間的無符號整數,因此不需額外加上& 0xffffffff 。

f1 = open('檔案路徑','rb')  # 此處rb是指以二進位制讀取檔案,二進位制才能進行異或運算的呀233333

f2 = open('檔案路徑','rb')

a = "".join(f1.readlines()) #這裡的readlines跟read差不多,readlines把全文讀取後按照行的形式存進列表,所以一版一行行遍歷我們用for i in f.readlines()。。而read直接簡單粗暴,而readline簡單讀取一行,強行複習一波python

b = "".join(f2.readlines())

s= ''

for i,j in zip(a,b): #這裡的zip是指多個序列或者是迭代器的元素,組合成元組。返回的元組的長度是所有輸入序列中最短的

s+=chr(ord(i)^ord(j))

print

s

import zipfile

from threading import thread

defextractfile

(zfile,pwd):

try:

zfile.extractall(pwd = pwd)

print

'password found : %s' % pwd

except:

pass

defmain

():

zfile = zipfile.zipfile('your zip')

passfile = open('dictionary.txt')

for line in passfile.readlines():

password = line.strip('\n')

t = thread(target=extractfile, args=(zfile, password)) #函式性程式設計的影子。因為第乙個引數是函式。。

t.start()

if __name__ == '__main__':

main()

其實python真的很強大,做題的時候還是有類似一些盲注之類的題目也會用到它,只是我是菜雞,只能憑自己理解寫一下,以後希望有時間還能補充一下。。。。。。

一波CSS Div實用技巧小結

正如多數人的認知一樣,html和css並不難學難用,從學習曲線上來說確實如此,難度甚至不如使用vim。但是寫不寫得好又是另一回事,好的css 能用最少的 量實現功能,易修改且效能佳。易修改,舉個最簡單的例子,比如要求修改乙個div的高寬且保持其子div自適應高寬,若是寫死了子div的高寬,修改工作很...

vector理解一波

vector 標頭檔案 include using namespacestd 定義 vector 型別 q 類同於 型別 q vector 型別 q 1010 類同於 型別 q 1010 操作 往vector存入乙個個資料 函式名 w.push back 資料 include include usi...

IT屋一波解答

viewpager 包裹fragment時,重新整理資料問題 1.setuservisiblehint 方法在oncreateview 之前呼叫,所以會throw nullpointexception 2.設定預載入,在viewpager中,現在的版本已經預設是1了。可以設定為mvphome.set...