文章内容:
1.注入流程
2.注入语句
3.靶场分享
一.注入流程
1.判断是否存在sql注入
2.猜解列名数量
3.判断回显位
4.利用sql语句查询数据库内信息
注:未经授权请勿擅自注入他人数据库!!!
测试请在靶场进行,靶场会放在后面
二.通过靶场进行sql注入
1.判断是否存在sql注入
加上单引号后再进行注释,回显正常,判断闭合方式为单引号闭合
and 可以当作于 C语言的&&,只有当两边同时为真时才为真,
id=1刚刚已经查询到内容了所 以为真,1=1也一定为真。
当1=2时,and的一边为假,回显异常。
由此可以判断,存在sql注入
2.猜解列名数量
通过order by ??? 来判断
order by 10回显异常,说明列数小于10
order by 5同样回显异常,则列数小于5
order by 3回显正常,说明列数大于等于3,
由于4还未进行测试,所以不能判断仅有三列
order by 4回显异常,说明只存在三列
3.判断回显位
通过union select 1,2,3在屏幕上回显的数字可知,回显位为2和3
4.利用sql语句进行数据查询
靶场数据较少,我们直接通过group_concat()函数输出全部表名
我们可以通过回显看到表名有 emails,referers,uagents,users
附上sql语句:group_concat(table_name) from information_schema.tables where table_schema=database()
查询系统数据库information_scheam中库名为database()中的所有表名
database()是查询数据库名的函数
version()是查询数据库版本的函数
以users为例,继续查询
我们可以看到,列名有:
user_id,first_name,last_name,user,password,
avatar,last_login,failed_login,id,username,password
sql语句:
group_concat(column_name) from information_schema.columns where table_name='users'
在系统数据库中查询所有列名在表名为users的表中
以username为例继续查询
我们可以看到,已经查询出了username中的所有数据
sql语句:group_concat(username) from users
在表users中查询列名为username的所有数据
今天的手工注入到这里就结束了!
别走哦,下面还有靶场分享
sqli-labs-master靶场压缩包:
链接:https://pan.baidu.com/s/1B8fmjCnGGf_fnfekghO5Dg
提取码:geek
--来自百度网盘超级会员V8的分享
小伙伴们如果觉得不错还希望点个赞哦(= ̄ω ̄=)