ctf

两道CTF Web的题目

孤街醉人 提交于 2019-12-02 09:38:29
1.easyphp 1.1.题目描述 题目首先是一张不存在的图片 查看源码发现只有一句话 <img src="show.php?img=aGludC5qcGc=" width="100%"/> 点开源码中图片的链接,跳转到下面的页面 img 后面的内容很像是 base64 编码,经过解码验证,确实是 base64 编码,还原后是 hint.jpg 。 尝试把 img 后面的参数用 flag.jpg、flag.php、flag 的base64编码代替后访问,并没有获取到有价值内容 直接访问 index.php 或者 show.php 也看不到任何东西,所以看看能不能利用 img 这个参数读取两个php源码 index.php 的 base64编码为 aW5kZXgucGhw show.php 的 base64 编码为 c2hvdy5waHA= 经过尝试后,这时通过源码已经可以读取到内容,内容分别如下 index.php <?php require_once('hint.php'); $x = new hint(); isset($_GET['class']) && $g = $_GET['class']; if (!empty($g)) { $x = unserialize($g); echo $x; } ?> <img src="show.php?img=aGludC5qcGc="

ctf中 preg_match 绕过技术

社会主义新天地 提交于 2019-12-02 08:09:27
1,例题 <?php error_reporting(0); if(isset($_GET['code'])){ $code=$_GET['code']; if(strlen($code)>40){ die("This is too Long."); } if(preg_match("/[A-Za-z0-9]+/",$code)){ die("NO."); } @eval($code); } else{ highlight_file(__FILE__); } highlight_file(__FILE); // ?> 使用异或绕过:可以使用各种特殊字符的异或构造出字母和数字 str = r"~!@#$%^&*()_+<>?,.;:-[]{}\/" for i in range(0, len(str)): for j in range(0, len(str)): a = ord(str[i])^ord(str[j]) print(str[i] + ' ^ ' + str[j] + ' is ' + chr(a)) uploading-image-359663.png 来源: https://www.cnblogs.com/v01cano/p/11736722.html

ctf web篇

微笑、不失礼 提交于 2019-12-02 06:05:03
view source f12或者在网站的前面加view-source:http:// 请用get方法提交一个名为a 值为1的变量 根据提示用get方式提交名为a值为1的变量,get方一般为在url后拼接参数,只能以文本的方式传递参数,因此直接在望网站后面进行拼接?a=1 输出结果为 请再以post方式随便提交一个名为b 值为2的变量 打开max hackbar 将网站输入在上面,b的值输入在下面 exe运行得到flag‘’ 爬虫: robots协议 全称是“网络爬虫排除标准”,网站通过协议告诉搜索引擎哪些页面可以抓取,哪些页面不可以抓取 通常以robots.txt协议存在,robots.txt是一个文本文件而不是一个命令 他是搜索引擎中访问网站的时候第一个要查看的文件, 文件写法: uaer-agent:*代表所有的搜索引擎种类,是一个通配符 disallow:/admin/这里定义是禁止爬讯admin目录下面的目录 disallow:/require/这里定义禁止爬寻require下面的目录 Disallow: /cgi-bin/.htm 禁止访问/cgi-bin/目录下的所有以".htm"为后缀的URL(包含子目录)。 disallow:/cgi-bin/.htm禁止访问/cgi-bin/目录下的所有以“.htm”为后缀的url(包含子目录) disallow:/?*

CTF中的RSA(二) 小明文攻击

柔情痞子 提交于 2019-12-02 01:56:38
今天的有点水,因为我这个萌新把题秒了 我们先来看题目吧 题目来自 https://www.jarvisoj.com/challenges Extremely hard RSA 没想到RSA4096都被你给破了,一定是我的问题,给了你太多信息,这次我只给你一个flag的加密值和公钥,仍然是RSA4096,我就不信你还能解出来。 点我下载题目 看起来很吓人,但其实虚张声势。我们一步步分析,看看她到底是不是 “Extremely hard” 压缩包里有两个文件,flag.enc 和 pubkey.pem。看到 .pem 格式的文件,套路来了,用 openssl 工具读取 pubkey.pem 文件,得到 公钥 e 和 模数 n 。具体如下: 1 [mt11235@mt11235-pc]$ openssl rsa -pubin -in pubkey.pem -text -modulus 得到 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 RSA Public-Key: (4096 bit) Modulus: 00:b0:be:e5:e3:e9:e5:a7:e8:d0:0b:49:33:55:c6: 18:fc:8c:7d:7d:03:b8

CTF中的RSA(二) 小明文攻击

我的未来我决定 提交于 2019-12-02 01:49:48
今天的有点水,因为我这个萌新把题秒了 我们先来看题目吧 题目来自 https://www.jarvisoj.com/challenges Extremely hard RSA 没想到RSA4096都被你给破了,一定是我的问题,给了你太多信息,这次我只给你一个flag的加密值和公钥,仍然是RSA4096,我就不信你还能解出来。 点我下载题目 看起来很吓人,但其实虚张声势。我们一步步分析,看看她到底是不是 “Extremely hard” 压缩包里有两个文件,flag.enc 和 pubkey.pem。看到 .pem 格式的文件,套路来了,用 openssl 工具读取 pubkey.pem 文件,得到 公钥 e 和 模数 n 。具体如下: 1 [mt11235@mt11235-pc]$ openssl rsa -pubin -in pubkey.pem -text -modulus 得到 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 RSA Public-Key: (4096 bit) Modulus: 00:b0:be:e5:e3:e9:e5:a7:e8:d0:0b:49:33:55:c6: 18:fc:8c:7d:7d:03:b8

【2019 Roar CTF】baby RSA + 威尔逊定理 + python写脚本小结

我的未来我决定 提交于 2019-12-02 00:42:12
Baby RSA 题目内容: import sympy import random def myGetPrime(): A= getPrime(513) print(A) B=A-random.randint(1e3,1e5) print(B) return sympy.nextPrime((B!)%A) p=myGetPrime() #A1=21856963452461630437348278434191434000066076750419027493852463513469865262064340836613831066602300959772632397773487317560339056658299954464169264467234407 #B1=21856963452461630437348278434191434000066076750419027493852463513469865262064340836613831066602300959772632397773487317560339056658299954464169264467140596 #p

ctf笔记(i春秋) 19.‎10‎.4-19.10.21‎

风格不统一 提交于 2019-12-01 19:21:55
本次笔记以i春秋为主 R.I.P Transmission 题目给了个名为RIP的文件,winhex查看文件头发现是ELF文件,使用rar可以打开但提示损坏 打开kail,使用binwalk:binwalk -e 文件名 解析出压缩包,rar工具打开提示损坏,修复后 用fcrackzip字典爆破:fcrackzip -D -p '/usr/share/wordlists/rockyou.txt' -u 文件名(注意,rockyou有可能是以压缩包的形式存在,如果是要先解压) 实验室的logo 题目给jpg图片,右键属性查看详细信息,无提示,winrar打开失败,winhex发现是jpg文件,ps打开没发现多图层或其他信息 binwalk解析,发现该文件其实是两张jpg图片,在winhex中跳转偏移量到第二张图片的位置,复制之后的所有数据,新建文件粘贴,保存为jpg文件,再打开即可 加密的文档 题目给zip文件,打开发现有密码保护,用winhex打开发现压缩源文件数据区全局方式位标记位为0,有可能是伪加密 因为解压的pkware版本为1400,直接16进制全局搜索1400,发现在压缩源文件目录区的全局方式位标记为09,改为00,保存。 重新打开压缩文件解压里面的word文档,直接打开发现打开失败。 用winhex打开,发现PK字样,改后缀为zip重新打开,在image中可找到flag

ctf交流群的加群题

那年仲夏 提交于 2019-12-01 17:12:28
misc 题目下载 Tips: https://processor.pub/2017/03/22/0CTF-2017-python%E9%80%86%E5%90%91/ 题目中有一个pyc文件 先用Easy Python Decompiler将文件反编译 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 # Embedded file name: test.py import base64 part_1 = 'cmFnZVq' part_2 = '95b3Vy' part_3 = 'X2RyZWFt' part_4 = 'ISEh' def decode --- This code section failed : --- 0 LOAD_GLOBAL None 3 < 153 > None 6 SLICE+ 2 None 7 < 151 > None 10 BINARY_ADD None 11 < 151 > None 14 BINARY_ADD None 15 < 151 > None 18 < 153 > None 21 BINARY_MULTIPLY None 22 BINARY_ADD None 23 STORE_FAST

ctf比赛中常见的文件上传漏洞问题杂谈(持续更新)

醉酒当歌 提交于 2019-12-01 13:44:14
本文是小白用来学习文件上传的杂谈(注意是杂谈),应该都是一些对大佬没什么用的东西(但是欢迎大佬补漏和指错,提前谢谢)! 那么开始吧。 (1)首先是.htaccess文件。 htaccess是超文本访问(Hypertext Access)的缩写,是一个基于Apache的Web服务器使用的配置文件,用于 控制它所在的目录以及该目录下的所有子目录 。 .htaccess文件的主要功能包括使用密码保护文件夹,禁止或允许用户使用IP地址访问,禁止目录浏览,将用户自动重定向到另一个页面或目录,创建和使用自定义错误页面,改变具有特定扩展名的文件的使用方式,或者通过指定文件扩展名或特定文件作为主页。 你需要在所有.htaccess文件中添加ServerSignature Off指令,因为这样的话可以阻止在目录列表上显示你的服务器信息(这使得攻击者的侦察阶段会有非常明显的提示)。所以说,这个时候最好通过你的httpd.conf来完成对web服务的控制,而不是你的htaccess文件。 (先这样吧,好累啊) 来源: https://www.cnblogs.com/cioi/p/11688937.html

CTF中的命令执行绕过方式

北战南征 提交于 2019-12-01 05:47:15
0x00:管道符、命令执行函数 0x01:管道符 在用linux命令时候,我们可以一行执行多条命令或者有条件的执行下一条命令,下面我们讲解一下linux命令分号&&和&,|和||的用法 “;”分号用法 方式:command1 ; command2 用;号隔开每个命令, 每个命令按照从左到右的顺序,顺序执行, 彼此之间不关心是否失败, 所有命令都会执行。 “| ”管道符用法 上一条命令的输出,作为下一条命令参数。ctf里面:ping 127.0.0.1 | ls(只执行ls不执行前面的) 方式:command1 | command2 Linux所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。连续使用管道意味着第一个命令的输出会作为 第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推 利用一个管道 # rpm -qa|grep licq 这条命令使用一个管道符“|”建立了一个管道。管道将rpm -qa命令的输出(包括系统中所有安装的RPM包)作为grep命令的输入,从而列出带有licq字符的RPM包来。 利用多个管道 # cat /etc/passwd | grep /bin/bash | wc -l 这条命令使用了两个管道,利用第一个管道将cat命令(显示passwd文件的内容)的输出送给grep命令,grep命令找出含有“