Tagged: CTF Toggle Comment Threads | 键盘快捷键

  • jinzihao pm10:42 on 2016年7月10日 链接地址 | 回复
    Tags: CTF,   

    CISCNCTF 随记(1) 

    曼彻斯特编码:二进制的0编码为10,二进制的1编码为01(1和0也可以反过来),如果一个二进制串中只有01和10可以考虑曼彻斯特编码

    二进制串里如果包含char或者int,有可能从前往后看,也可能是每一个单元(char就是1 byte,int就是4 byte)从后向前看,在pwn类型的题中也有类似的问题。

    python的hex函数10->16,int函数any->10,bin函数10->2;字符串逆序在后面加[::-1]。

    Word有隐藏文字的功能,可以在选项里打开显示隐藏文字的功能。也有可能出现白底白字导致看不到的情况,如果不放心就直接把docx当做zip解包,打开Word的源文件看看有没有遗漏。

    TrueCrypt和PGPDesktop都可以加密文件,TrueCrypt用一个字符串或者用一个文件做密码,PGPDesktop用公钥私钥来解密,私钥也可以要求密码。Linux下的GnuPG与之兼容。(有待尝试)

    摩尔斯电码听不清的话拿Audacity的频谱模式看一看。

    别忘了栅格密码,13572468可以写成第一行1357第二行2468,然后一列一列看就是12345678。

    tesseract识别验证码效果不错,也有一个并不难上手的Python接口pytesseract。(进一步提高识别率有待尝试)

    Python用requests模块发送http请求,功能大体相当于curl。

    vim有备份文件和交换文件,如果编辑的文件是index.php,备份文件在index.php~,交换文件在.index.php.swp,如果再次意外退出就生成.index.php.swo,接着是.index.php.swn,.index.php.swm,……。swp没有的话swo还要试一试。

    PHP判断浮点数相等时有精度问题,PHP认为0.99999999999999999999和1是相等的。另外MySQL和PHP在浮点数判等时精度有差别,也可能会有利用的机会。

    shell脚本中如果不让用空格,用$IFS环境变量可以产生空格;如果不知道当前目录,也不允许用pwd的话,用$PWD环境变量效果一样。

    SQL注入不止会发生在GET和POST参数上,http header里面也可能有注入,cookie也有可能,只要能作为用户输入的东西都可能有注入。

    Access数据库有DLookup函数,用在UPDATE型注入时可以很方便地起到内联SELECT的效果,解决了Access不能直接在UPDATE的SET部分内联SELECT的问题。

     

     
  • jinzihao am12:09 on 2016年5月18日 链接地址 | 回复
    Tags: CTF, ,   

    [writeup] web {1, 2, 3, 4} – Bluelotus-Exercise 

    web1:

    打开网址,在网页源代码中看到下列注释:

    输入的$user和$pass被单引号包围,可通过在$user中输入

    利用MySQL的\转义机制,将后一个单引号转义为字符串的一部分;在$pass中输入

    (%23为#的URL转义)利用MySQL的#注释机制注释掉后面的部分,包括紧随其后的单引号
    此时SQL语句为:

    其中只剩两个单引号,恰好配对为一个字符串,后面OR 1=1的存在即可取出表中所有的记录。
    输入?user=flag\&pass= OR 1=1%23后得到flag:CTF{Welc0me_T00_t3e_Web_W0r1d}


    web2:

    在网页注释中看到:

    尽管$str经过了addslashes处理,但addslashes只会在单引号、双引号、反斜线、空字符前添加一个反斜线,故可以在$str中输入一个

    PHP中双引号内的${}内的代码可被解释运行,输入?str=${echoflag()}得到flag为CTF{D0llAr_I3_Ama2inG}


    web3:

    (此题提示信息中$secretId = 12315应改为$secretId = 1)
    本题中id参数在PHP代码中被存为float类型,如果这个浮点数类型的id与secretId相等则不会进行else分支中的数据库查询。但浮点数判等就会有精度问题,利用PHP和MySQL浮点数的精度差别,使$id和$secretId在PHP中不等,而在MySQL中相等。于是构造一个id=1.00000000000001,PHP认为1.00000000000001 != 1,从而进入else分支。而MySQL认为1.00000000000001 = 1,从而取出了id为1的记录:id: 1, message: CTF{W3ll_D0wn}


    web4:

    if($_CONFIG[‘extraSecure’])内的代码对$kw进行了过滤,使得注入代码难以进入最终的SQL语句中。但前面两重foreach循环,提供了一个修改$_CONFIG的机会。对于所有$_GET[‘key’] = ‘value’、$_POST[‘key’] = ‘value’、$_REQUEST[‘key’] = ‘value’、$_COOKIE[‘key’] = ‘value’,PHP都会销毁key变量。于是以GET参数的形式传入一个?_CONFIG=xxx,便可以销毁$_CONFIG,从而使$_CONFIG[‘extraSecure’]为空,绕过了preg_replace的过滤。接下来再在kw中进行联合查询:

    先用’结束LIKE后面的字符串,用and 0使第一条查询查不出任何记录,否则第一条记录就不一定是user表中admin的密码了。接下来union select便可以取出user表中id为1的记录。查询得到结果:id: admin, message: CTF{G00d_J0b}

     
  • jinzihao pm11:31 on 2016年5月17日 链接地址 | 回复
    Tags: CTF, ,   

    [writeup] misc {1, 2, 3, 4, 5} – Bluelotus-Exercise 

    misc1:

    查字典可知,这五个字读作(dà)(xiàng)(de)(yīng)(wén),于是flag输入大象的英文elephant即可。


    misc2:

    在键盘上找到这些字母和数字对应的位置,恰好构成了大写字母LIC,flag即为LIC。


    misc3:

    此题为一段base32编码的数据,在http://emn178.github.io/online-tools/base32_decode.html解码得到

    再从左到右将每两位16进制数转换为一个ASCII字符(在线转换工具:http://string-functions.com/hex-string.aspx),得到flag:ctf{Enc0d1ng_1s_f3n)}


    misc4:

    flag.zip
    本题的zip文件看似需要密码才能打开,实际为伪加密,使用unpack.txt(请将扩展名改为.py)解压flag.zip:

    得到flag.docx,打开显示ctf{Hu33y_Up}即为flag。


    misc5:

    flag.docx
    打开flag.docx文件只看到蓝莲花图片,将扩展名改为.zip,解压,在word\media\下面看到两个png图片,打开image2.png,看到flag:ctf{My_G0g}

     
  • jinzihao pm1:27 on 2015年11月30日 链接地址 | 回复
    Tags: CTF,   

    暴力破解zip密码用ziperello就不错…无需注册码,看起来也没有病毒…至于速度,不敢说是最快的,不过密码为233的一个zip文件确实是秒出了…

     
c
写新的
j
下一篇文章/下一个回复
k
前一篇文章/以前的回复
r
回复
e
编辑
o
显示/隐藏 回复
t
回到顶部
l
go to login
h
show/hide help
shift + esc
取消