南邮-Web(一)
source link: http://qwzf.top/2019/07/25/%E5%8D%97%E9%82%AE-Web(%E4%B8%80)/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
南邮-Web(一)
最近做了些南邮的Web题,虽然有些比较基础,但依旧可以学到一些Web知识。
Web1:签到题
题比较基础,查看源码即可
Web2:md5 collision
审计题目的代码可知:
- 字符串QNKCDZO进行md5,得到md5值0e830400451993494058024219903391并赋值给变量
$md51
。 - GET请求获取提交a的值并赋值给变量
$a
,并对$a
进行md5操作赋值给$md52
。 - 若变量
$a
不为空,且不等于’QNKCDZO’,并$md51
与$md52
的值内容相等,则可以得到 flag。 - 由于
$md51
为0e830400451993494058024219903391,在==比较时,会被认为是0*10^830400451993494058024219903391,也就是0。 - 那满足条件的变量
$a
就是其md5值是0e开头的即可
找一个md5加密后为0的值:s878926199a
更多请点击->MD5加密后==’0’
由于是GET请求获取变量$a
,构造参数flag显现
Web3:签到2
很明显,口令有11位,输入框只能输10位,增大输入框长度即可。输入口令得到flag
Web4:这题不是WEB
看题目提示,可能此题不是Web题。。。点开题目地址
分析发现就这张图片比较可疑,保存图片,看是不是图片隐写。先用WinHex打开
果然这题不是WEB,是图片隐写
Web5:层层递进
题目描述没有提示,点击题目地址
没有有用信息,查看网页源码
发现有个SO.html
,输入到url地址栏,并查看源码
发现有个S0.html
,输入到url地址栏,并查看源码
发现有个SO.htm
,输入到url地址栏,并查看源码
发现有个S0.htm
,输入到url地址栏,并查看源码
发现有个404.html
,输入到url地址栏
查看源码
发现flag了,flag是nctf{this_is_a_fl4g}
。果然是层层递进。。。。。
Web6:AAencode
先百度AAencode:
什么是jjencode?将JS代码转换成只有符号的字符串
什么是aaencode?将JS代码转换成常用的网络表情。
根据题目描述,这是一道颜文字js加密,但是密文不应该是这样。所以应该编码有问题。用火狐打开,单击查看–>文字编码–>unicode
编码成功,然后进行颜文字解密。可以用火狐的控制台,也可以用谷歌的Console
Web7:单身二十年
打开题目,查看源码
点击,发现并没有进入到search_key.php。应该是重定向了。
所以抓包,发送到Repeater
点击Go,发包,得到flag了
Web8:php decode
审计php代码。发现eval函数1,先百度一下eval:
eval() 函数用来执行一个字符串表达式,并返回表达式的值。
eval()函数会执行括号里面的语句,这种代码在现实中一般是某个黑客上传的一句话马。
但在这里eval里面肯定就是flag了,所以将eval改为echo输出eval里面的内容
运行php代码,得到flag
Web9:文件包含
点击”click me? no”,发现存在文件包含
http://4.chinalover.sinaapp.com/web7/index.php?file=show.php
文件包含?!不会。。。了解一下吧!
文件包含漏洞
文件包含
解释:
LFI是能够打开并包含本地文件的漏洞
所以这道题是本地文件包含, 尝试使用伪协议读取php文件
http://4.chinalover.sinaapp.com/web7/index.php?file=php://filter/read=convert.base64-encode/resource=index.php
得到base64加密后的字符串
Base64解密,看到原内容,得到flag。
Web10:单身一百年也没用
这道题Web7单身二十年很像,但当我们直接点击“到这里找KEY”然后再进行抓包时,找不到异常。
额。不会了。。查看一下大佬的博客,了解到
当我们先抓包再点击接着再抓包时候会找到302重定向错误代码,这时候可以在响应头中找到flag。
大佬用的是火狐,而我的火狐有点问题,没有抓到中间重定向的包。
所以我直接用的谷歌的Network
百度302错误代码:302重定向又称之为302代表暂时性转移(Temporarily Moved ),英文名称:302 redirect。 也被认为是暂时重定向temporary redirect),一条对网站浏览器的指令来显示浏览器被要求显示的不同的URL,当一个网页经历过短期的URL的变化时使用。一个暂时重定向是一种服务器端的重定向,能够被搜索引擎蜘蛛正确地处理。
Web:Download~!
题崩了,打不开了。。。。
Web11:COOKIE
有一个提示0==not
点开题目
“please login first!”翻译成“请先登录!”,burpsuite抓包
发现Cookie:Login=0
,而0===not
,所以将0改为1,再点击Forword发包,得到flag
Web12:MYSQL
题目没有提示,点开题目
robots.txt
这个我知道,之前做攻防世界的Web题遇到过
robots协议
robots.txt是搜索引擎中访问网站的时候要查看的第一个文件。
所以在url栏里输入robots.txt
发现提示sql.php
,在另一窗口打开。然后审计php代码,发现intval() 函数,百度一下
intval() 函数
intval() 函数用于获取变量的整数值。
intval() 函数通过使用指定的进制 base 转换(默认是十进制),返回变量 var 的 integer 数值。 intval() 不能用于 object,否则会产生 E_NOTICE 错误并返回 1。
理解一下php代码
1、$id
等于$_GET[id]
的整数值
2、sql查询语句id='$id'
3、如果 $_GET[id]==1024
返回“no! try again”,否则返回数据库content字段内容
所以在sql.php页面进行get传参。get传递的参数不能等于1024,且查询时id=1024,所以get传一个整数部分为1024的浮点数即可。最终得到flag。
Web13:GBK Injection
这道题是宽字节注入,我还没学到,就先用sqlmap做一下吧,正好可以熟悉熟悉sqlmap命令的使用
至于为什么要加%df
%df%27
是双字节不转义单引号实现注入的方法,具体看大佬博客
gbk字符编码和宽字节sql注入
1、爆库
命令:
sqlmap.py -u "http://chinalover.sinaapp.com/SQL-GBK/index.php?id=1%df%27" --current-db
所以当前数据库为:sae-chinaover
2、爆表
命令:
sqlmap.py -u "http://chinalover.sinaapp.com/SQL-GBK/index.php?id=1%df%27" --tables -D sae-chinalover
3、爆字段和数据
发现6个表,根据题目标题GBK Injection,所以flag有可能在gbksqli表里
命令:
sqlmap.py -u "http://chinalover.sinaapp.com/SQL-GBK/index.php?id=1%df%27" --dump -T gbksqli -D sae-chinalover
当然,如果没想到这个表,可以一个表一个表的试。需要注意的是,在ctf4表里也出现了flag
但这个并不是这道题的答案。
Web14:变量覆盖
似乎没听说过,那先了解一下有关变量覆盖的基础知识吧
变量覆盖漏洞详解
CTF之php变量覆盖漏洞
开始做题
点开显眼的source.php文件
审计php代码,发现如果$pass==$thepassword_123
就显示flag。所以构造get传参值,让两变量相等
得到flag。
就先总结这么多吧。。。。。。。。。。。。
题不是太难,重点是基础知识的掌握。尤其是文件包含的理解和代码审计的能力。
小白进阶ing。。。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 [email protected]
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK