一次简单的sql注入

138 阅读2分钟

题一:可能存在注入的编号选项

1、www.xxx.com/index.php?i…

2、www.xxx.com/?id=10

3、www.xxx.com/?id=10&x=1

4、www.xxx.com/index.php

当默认访问是index.php时,2其实就是1。

3就是有多个参数,哪个参数都有可能存在注入。

4如果是post传参就有可能存在注入

题二:参数x有注入,以下那个注入测试正确?

1、www.xxx.com/news.php?y=… and 1=1&x=2

2、www.xxx.com/news.php?y=… and 1=1

3、www.xxx.com/news.php?y=… and 1=1&x=2 and 1=1

4、www.xxx.com/news.php?xx… and 1=1&xxx=2 and 1=1

答案:2、3

哪个参数存在注入,在哪个参数后边进行测试

题三:墨者学院简单实践

1、启动靶场环境

image.png

2、发现需要账号密码登录,但啥也没有啊,发现下边有个通知,点进去

image.png

3、进入发现地址有可能存在注入

image.png

此处如何判断注入点?

老办法:

and 1=1页面正常

and 1=2页面错误

可能存在注入点

但要选用最舒服的方法测试

4、老办法发现and1=1正常,and 1=2异常,此处存在注入点

image.png

image.png

5、order by语句猜测,4正常5异常,所以4正确

image.png

image.png

6、oeder by 语句发现后用union语句进行利用,union之前的语句使其发生错误,执行后边的语句,发现2,3为回显点

image.png

7、找到回显点后首先进行信息搜集

操作系统:version()

数据库名:database()

数据库用户:user()

数据库版本:@@version_complie_os

image.png

image.png

此处必要知识点:

在MYSQL5.o以上版本中。mysql存在一个自带数据库名为 information_schema,它是一个存储记录有所有数据库名,表名,列名的数据库,也相当于可以通过查询它获取指定数据库下面的表名或列名信息。

information_schema.tables:记录所有表名信息的表

information_schema.columns:记录所有列名信息的表

8、然后查询指定数据库下的表名信息

image.png

image.png

9、查询列名信息

image.png

10、查询指定信息

image.png

11、解密

image.png

12、登录成功(有登录不成功的用group_concat函数再看一下,有两个号)

image.png