MYSQL
打开robots.txt
鍒お寮€蹇冿紝flag涓嶅湪杩欙紝杩欎釜鏂囦欢鐨勭敤閫斾綘鐪嬪畬浜嗭紵
鍦–TF姣旇禌涓紝杩欎釜鏂囦欢寰€寰€瀛樻斁鐫€鎻愮ず淇℃伅
这一看乱码,放到新建txt文件里,试下其他的编码,最后utf-8可以解出来。
别太开心,flag不在这,这个文件的用途你看完了?
在CTF比赛中,这个文件往往存放着提示信息
没有用的信息。
打开sql.php。
回头看下代码意思。
①首先判断get方式的id是否为空。
②连接数据库,选择数据库。
③id的值经过函数intval处理。
④像数据库查询id为intval处理过后的id值。
⑤判断id是否等于1024,如果是,try again。
⑥如果不是,查询内容。
思路,让经过intval处理后的id值为1024,但是id原始的值不能为1024.
intval()函数漏洞。intval(1024a)结果是1024,intval(1024.1)结果为1024
但是1024a是不行的,因为有个弱比较,1024a会转化为1024,只有小数才行
\x00
解法一:
ereg%00截断,?nctf=1%00#biubiubiu,但是#直接输在地址栏里,会变成控制字符,截断后边的内容。
直接对#进行url编码%23,再来看一下就是普通的字符#了。
解法二:
数组绕过。?nctf[]=
。ereg和strpos在比较数组的时候会返回null,null和false进行强比较的时候是不相等的,正好绕过。
遗留:http://chinalover.sinaapp.com/index.php
综合题
放到浏览器的控制台运行,发现一个php文件,访问。1bc29b36f623ba82aaf6724fd3b16718.php
提示:tip在他的脑袋里,其实就是头里,http响应头里。f12,查看网络(network),刷新界面。
tips:history of bash。
百度:.bash_history用来记录历史操作。
我们访问这个文件发现:zip -r flagbak.zip ./*
访问flagbak.zip,下载打开就可以找到flag。
密码重置2
三条提示:①管理员邮箱可以查看页面源代码找到。
②备份文件是.filename.swp
③先看前两步。
访问.index.php.swp
,发现没有这个。
随便提交个数据,发现有submit.php
,于是访问.submit.php.swp。
发现代码:
大体意思:数据库里面有个token字段,token为0的那一列,储存着flag的值,但是,你会验证你提交的token的值0必须得是十位数还有那个管理员邮箱。
弱比较,token=0000000000即可。
payload:http://nctf.nuptzj.cn/web14/submit.php?emailAddress=admin%40nuptzj.cn&token=0000000000
异性相吸
根据提示,要把明文和你密文字符串进行异或。
异或是二进制之间进行异或,所以要把字符串转化为二进制。
没用python写,因为密文的话有好多不可打印字符。 (一开始头铁,用的工具converter直接进行的转化,能解出flag,但是有好几个字符不对。)
直接用010editor
密文:
明文 :
用python脚本进行异或操作。
这里直接复制到converter就出来了,或者复制到010editor。
md5
python环境3.7,用的hashlib。