南邮webwriteup(除了sql注入)

#web

###1.签到题 题目地址:http://chinalover.sinaapp.com/web1/

11
直接查看源码,毕竟签到题
12

flag: nctf{flag_admiaanaaaaaaaaaaa}

###2.md5 collision 题目地址:http://chinalover.sinaapp.com/web19/
21
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
31
从题目不难看出只要输入口令即可拿到flag

输入口令发现对字数限制

查看源码:
32

表单显而易见只能输10个字符,提交方式post
1.hackbar post提交
2.burp改请求头

得到flag:nctf{follow_me_to_exploit}

###4.这题不是WEB 题目地址:http://chinalover.sinaapp.com/web2/index.html

看见这只猫真烦人41
原来是隐写题下载图片呃
两种思路: 先搜flag—>无果
1.南邮ctf一般格式为nctf{ }
于是搜这个呃出来了42

2.43呃又学到了

###5.层层递进 题目地址:http://chinalover.sinaapp.com/web3/
51
这题分不高不应难
查源码无果
只有抓包–>请求头,响应头都无,岂不凉凉
看了writeup才知道访问的URL:http://chinalover.sinaapp.com/web3/404.html
进去之后查看源码发现了如下代码:
52
呃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.单身二十年
71
呃点一下:72
抓包大法:73

###8.你从哪里来?呃贫僧来自东土大唐
81
肯定改请求头
refer:https://www.google.com/
HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器藉此可以获得一些信息用于处理。
flag:nctf{http_referer}

###9.php decode
91

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~!
查看页面源码:
131
下载得到download.php代码,如下:
132
又发现了一个文件hereiskey.php,估计flag就在里面,果断下载
URL:way.nuptzj.cn/web6/download.php?url=aGVyZWlza2V5LnBocA==
得到flag代码:
133

flag:nctf{download_any_file_666}

###14.mysql
141
142
说明id!=1024
$id = intval($_GET[id]);//这是前面的代码 转为整数
随手输了个id=1024.1
过了

flag is:nctf{query_in_mysql}

###15./x00
151

百度ereg,strpos函数

这里ereg有两个漏洞

%00截断及遇到%00则默认为字符串的结束
当ntf为数组时它的返回值不是FALSE

所以有两个方法去攻这道题目
1.令id=1%00%23biubiubiu
2.令nctf为数组则,nctf[]=111

附加:

=== 格式也等
!== (0!==false 为true)
152

flag:nctf{use_00_to_jieduan}

###16.bypass again

161
php弱类型
$_GET可以接受数组但MD5
md5()不能处理数组结构的数据
利用此漏洞构造index.php?a[]=1&b[]=2

163

flag: nctf{php_is_so_cool}

###17.变量覆盖
171
总的来说是extract() 函数从数组中将变量导入到当前的符号表。
典型的变量覆盖
if ($pass == $thepassword_123) { ?>
只需要覆盖$pass、$thepassword_123这两个变量使他们相等即可
172

flag:nctf{bian_liang_fu_gai!}

###18.php世界上最好的语言

181
182

lag: nctf{php_is_best_language}

###19.伪装者
191

加x-forwarded-for:127.0.0.1
flag:nctf{happy_http_headers}

###20.Header

http头
flag:nctf{tips_often_hide_here}

###21.passcheck
211
直接传pass个数组形式pass[]=1

flag:nctf{strcmp_is_n0t_3afe}

###22.密码重置
221
222

###23.密码重置2
231
232
233
234

if(strlen(token)!=10)die(‘fail′);if(token!=’0’) die(‘fail’);
长度为十并且值为零
只有$token=0000000000
“`
将邮箱admin@nuptzj.cn
密码0000000000
得到flag

flag:nctf{thanks_to_cumt_bxs}

×

纯属好玩

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章目录
,