DAS关于一道Sqlite注入RCE的题目/的文件名
在flask中, 对于上传文件的文件名获取处理方式和PHP并不相同, PHP中会获取原始文件名中的最后一个文件名, 而falsk中的request.files['file']则是会将原始文件名全部拿到 注意一点, 这里的flag是不可能在sqlite数据库中的, 因为这个sqlite并没有进行任何的文件读取操作, 而是使用sqlite3.connect(':memory:')的方式将数据库放在缓存中, , 但是还是记一下吧:
想通过找到读取文件的sqlite参数进行文件读取然后算出PIN码拿后台, 但是并没有找到文件读取的可用函数
堆叠注入, 通过语句执行达到更大的活动权限, 但是代码中的语句都是只能支持一句代码的 Sqlite加载.so拓展反弹shell
shell.c 源码如下:
/* Add your header comment here */
#include <sqlite3ext.h> /* Do not 0LL);
}
return rc;
}
编译前先安装sqlite环境:
sudo apt install libsqlite3-dev
执行编译:
gcc -g -fPIC -shared shell.c