- 挖掘方法
- 数据库操作性 函数 写到配置环境 (暂时忽略)
PHP mysql_real_escape_string() 函数
- 转义 SQL 语句中使用的字符串中的特殊字符
- 下列字符受影响:
\x00
\n
\r
\
’
"
\x1a
- 如果成功,则该函数返回被转义的字符串。
如果失败,则返回 false。
PHP addslashes() 函数
- ——返回在 预定义字符 之前 添加反斜杠 的 字符串。
- 预定义字符是:
单引号(’)
双引号(")
反斜杠(\)
NULL
提示:
可用于 为存储 在 数据库 中的 字符串以及数据库查询语句 准备字符串。
注释:
PHP 对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。
所以您不应对已转义过的字符串使用 addslashes(),因为这样会导致双层转义。
遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。
PHP htmlentities() 函数
- ——把字符转换为 HTML 实体。
提示:
要把 HTML 实体转换回字符,请使用 html_entity_decode() 函数。
请使用 get_html_translation_table() 函数 来返回 htmlentities() 使用的翻译表。
PHP htmlspecialchars() 函数
- ——把一些预定义的字符转换为 HTML 实体
预定义的字符是:
& (和号) 成为 &
" (双引号) 成为 "
' (单引号) 成为 '
< (小于) 成为 <
> (大于) 成为 >
PHP strip_tags() 函数
- ——剥去字符串中的 HTML、XML 以及 PHP 的标签。
注释:该函数始终会剥离 HTML 注释。这点无法通过 allow 参数改变。
注释:该函数是二进制安全的。
PHP md5() 函数
-
——md5() 函数计算字符串的 MD5 散列。
-
——md5() 函数使用 RSA 数据安全,包括 MD5 报文摘要算法。
PHP sha1() 函数
-
——sha1() 函数计算字符串的 SHA-1 散列。
-
——sha1() 函数使用美国 Secure Hash 算法 1
PHP intval() 函数
-
——函数用于获取变量的整数值。
-
——通过使用指定的进制 base 转换(默认是十进制)
返回变量 var 的 integer 数值。 -
—— intval() 不能用于 object,否则会产生 E_NOTICE 错误并返回 1。
# 适用人群
- 安全开发
- 程序员
- 渗透测试人员
- id=1 写死
- 可操控 $_POST 接收
- 安全函数 查看是否严谨
- 注入 是否进行限制
- 来判断 sql注入漏洞 在这个地方 是否存在
# 数据库监控
- 监控插件 监控sql操作语句词型
- 访问 网站特殊地址 查看数据库操作语句 执行在 哪个地方
- 追寻代码 文件地址
- 跟踪 代码是否可控 绕过
- 分析 哪个语句 跟当前 访问页面 参数相关
- 尝试 更改参数 追加确认
- 作为全局搜索
- 如果不确定 就打开一个 注释下
- 更改参数 查看页面状态
- 语句注释 后 页面报错
- 确认是 当前页面 代码文件
- 注意传值方法
- 追踪该方法有没有相关 绕过 过滤 条件
- 若没有 可能存在注入点
#实战挖掘#
- 变量全局 搜索
- 访问相关文件
- 传入 验证绕过 所需 参数
- 并且开启 数据库监控
- 补足 验证条件
- 构造 ?id=1 order = 1 &u …
- %23 -----> #
- 盲注测试
- 构造 ?id=1 union select 1,2,3 &u …
- 页面 注入 测试
- 联合注入 失败
- 测试盲注
-
0.5 ---->延时2s
-
一般延时注入 要比 联合注入 通用性好
# 总结
-
访问敏感页面
-
监控数据库
-
查找执行出处函数 方法
-
监控 出处 处 变量
-
追踪变量 是否过滤
-
sql是否存在
-
关键字搜索 ——任何漏洞挖掘 比较常用
-
数据库监控—— 类似于 SQL注入这种相应