#web
###1.签到题 题目地址:http://chinalover.sinaapp.com/web1/
直接查看源码,毕竟签到题
flag: nctf{flag_admiaanaaaaaaaaaaa}
###2.md5 collision 题目地址:http://chinalover.sinaapp.com/web19/
MD5加密QNKCDZ0–>0Exxxxxxxxx
== 数据的值相同即可(php弱类型)
在php中==号为弱比较’0e’开头剩下的全为数字不管数字是多少==恒成立
因为’0e***’==0,找一个MD5值为0e开头的字符串即可附上网址http://www.219.me/posts/2884.html
这里将$a=s878926199a 用get提交在URL后加?$a=s878926199a即可得flag:nctf{md5_collision_is_easy}
###3.签到题呃。。题目地址:http://teamxlc.sinaapp.com/web1/02298884f0724c04293b4d8c0178615e/index.php
从题目不难看出只要输入口令即可拿到flag
输入口令发现对字数限制
查看源码:
表单显而易见只能输10个字符,提交方式post
1.hackbar post提交
2.burp改请求头
得到flag:nctf{follow_me_to_exploit}
###4.这题不是WEB 题目地址:http://chinalover.sinaapp.com/web2/index.html
看见这只猫真烦人
原来是隐写题下载图片呃
两种思路: 先搜flag—>无果
1.南邮ctf一般格式为nctf{ }
于是搜这个呃出来了
2.
呃又学到了
###5.层层递进 题目地址:http://chinalover.sinaapp.com/web3/
这题分不高不应难
查源码无果
只有抓包–>请求头,响应头都无,岂不凉凉
看了writeup才知道访问的URL:http://chinalover.sinaapp.com/web3/404.html
进去之后查看源码发现了如下代码:
呃flag:nctf{this_is_a_fl4g}
###6.AAencode
tips:javascript aaencode
aaencode是js加密的一种特别好玩,可以吧文字加密成表情
除了aaencode之外还有几种特别的加密方式
Perl的ppencode
Ruby的rrencode
我这浏览器显示乱码呃和别人writeup不一一昂
最后找到源码https://github.com/otakekumi/NUPT_Challenges/tree/master/WEB/AAencode
复制粘贴console弹出flag:nctf{javascript_aaencode}
###7.单身二十年
呃点一下:
抓包大法:
###8.你从哪里来?呃贫僧来自东土大唐
肯定改请求头
refer:https://www.google.com/
HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器藉此可以获得一些信息用于处理。
flag:nctf{http_referer}
###9.php decode
base64_decode,gzinflate,eval 3个函数不认识百度大法
base64_decode+gzinflate压缩编码和解码代码方法,就是通常我们在程序中见的eval(gzinflate(base64_decode(‘加密代码’))); 形式的加密方法。针对一层加密的,我们可以直接把eval改为echo即可解密,
OK–>flag:nctf{gzip_base64_hhhhhh}
###10.文件包含
php://filter 是一种元封装器, 设计用于数据流打开时的筛选过滤应用。
同时我也借此机会学到了文件读取的相关知识。
include “test.php”php文件包含,在执行流中插入写在其他文件中的有用的代码。读取的时候也是数据流形式,因此可以使用php://filter进行过滤,返回值为0,1。
readfile(“test.php”)是将文件以数据流的形式读取过来,并不会执行,但会在前台浏览器上进行解析。返回值是字节数多少。
file_get_contents(“test.php”)返回值为文本内容
此题运用的就是关于数据流过滤的文件包含,我们一般在进行文件包含的时候都这么写include “test.php”获得的就是test.php直接解析出来。但如果运用readfile(“test.php”) 就不进行解析,导致无法在浏览器前台进行显示。那么问题来了看题
它让我点击它 我一下子就点了他!!!
出来了个这个URL
‘http://4.chinalover.sinaapp.com/web7/index.php?file=show.php'
典型的文件包含漏洞我们可以通过构造含有漏洞的语句,查看想要看的代码
注解:
1.php://filter/可用于处理打开的数据流,起到过滤作用。如果源文件为.php则很有可能在前台显示不出来。
2.此时我们采用的方法是,先让文件转化为base64格式(convert.base64-encode)然后再输出,这样不论是什么格式的文件都可以在前台输出。
3.再次解码就可得到源代码看见了base64编码!!
解码flag:nctf{edulcni_elif_lacol_si_siht}
###11.单身一百年也没用
还是抓包:呃flag:nctf{this_is_302_redirect}
###12.cookie
联想到抓包
要修改cookie
改成了1纯属蒙
flag:nctf{cookie_is_different_from_session}
###13.Download~!
查看页面源码:
下载得到download.php代码,如下:
又发现了一个文件hereiskey.php,估计flag就在里面,果断下载
URL:way.nuptzj.cn/web6/download.php?url=aGVyZWlza2V5LnBocA==
得到flag代码:
flag:nctf{download_any_file_666}
###14.mysql
说明id!=1024
$id = intval($_GET[id]);//这是前面的代码 转为整数
随手输了个id=1024.1
过了
flag is:nctf{query_in_mysql}
###15./x00
百度ereg,strpos函数
这里ereg有两个漏洞
%00截断及遇到%00则默认为字符串的结束
当ntf为数组时它的返回值不是FALSE
所以有两个方法去攻这道题目
1.令id=1%00%23biubiubiu
2.令nctf为数组则,nctf[]=111
附加:
=== 格式也等
!== (0!==false 为true)
flag:nctf{use_00_to_jieduan}
###16.bypass again
php弱类型
$_GET可以接受数组但MD5
md5()不能处理数组结构的数据
利用此漏洞构造index.php?a[]=1&b[]=2
flag: nctf{php_is_so_cool}
###17.变量覆盖
总的来说是extract() 函数从数组中将变量导入到当前的符号表。
典型的变量覆盖
if ($pass == $thepassword_123) { ?>
只需要覆盖$pass、$thepassword_123这两个变量使他们相等即可
flag:nctf{bian_liang_fu_gai!}
###18.php世界上最好的语言
lag: nctf{php_is_best_language}
###19.伪装者
加x-forwarded-for:127.0.0.1
flag:nctf{happy_http_headers}
###20.Header
呃
http头
flag:nctf{tips_often_hide_here}
###21.passcheck
直接传pass个数组形式pass[]=1
flag:nctf{strcmp_is_n0t_3afe}
###22.密码重置
###23.密码重置2
if(strlen(token)!=10)die(‘fail′);if(token!=’0’) die(‘fail’);
长度为十并且值为零
只有$token=0000000000
“`
将邮箱admin@nuptzj.cn
密码0000000000
得到flag
flag:nctf{thanks_to_cumt_bxs}

