CTFshow-WEB入门-SQL注入(下)(持续更新)

web227

按照上一题的方法,发现查不出flag表了,把ctfshow_user表给爆了一下也没flag,然后写一句话马,蚁剑连上去还是找不到flag,人傻了。。。

看了一下y4师傅的WP,原来这题考的是存储过程:

存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。

存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。

存储过程思想上很简单,就是数据库 SQL 语言层面的代码封装与重用。

毕竟我们不是开发,没必要了解的那么深。我对于存储过程的理解就是用户自定义的函数,就是PHP,python里面自己写函数一样。
再参考一下这个:MySQL——查看存储过程和函数

查一下information_schema.routines表,就可以发现一个getFlag的存储过程:
CTFshow-WEB入门-SQL注入(下)(持续更新)_第1张图片
还给出了这个存储过程的定义:

BEGIN
SELECT "ctfshow{3b8b089d-6aaf-4176-9060-89786fcca3ba}";
END

所以直接就能得到flag了。如果要调用的话,也可以这样:

';call getFlag();

不过正常这题都是在之前姿势的基础上,还是要16进制编码。我这里没编码是因为我之前已经写马蚁剑连了上去,发现api/index.php有写的权限,我直接把过滤了删了才可以这样搞的。

web228

同web226

web229

同web226

web230

同web226

你可能感兴趣的:(SQL注入,数据库,mysql,SQL注入,php,web安全)