$offset = $argv[0]; // 注意,没有输入验证! $query = "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;"; $result = pg_query($conn, $query); ?> 一般的用户会点击 $offset 已被斌值的“上一页”、“下一页”的链接。原本代码只会认为 $offset 是一个数值。然而,如果有人尝试把以下语句先经过 urlencode() 处理,然后加入URL中的话: 0; insert into pg_shadow(usename,usesysid,usesuper,usecatupd,passwd) select 'crack', usesysid, 't','t','crack' from pg_shadow where usename='postgres'; -- 那么他就可以创建一个超级用户了。注意那个 0; 只不过是为了提供一个正确的偏移量以便补充完整原来的查询,使它不要出错而已。 注: -- 是 SQL 的注释标记,一般可以使用来它告诉 SQL 解释器忽略后面的语句。 对显示搜索结果的页面下手是一个能得到密码的可行办法。攻击者所要做的只不过是找出哪些提交上去的变量是用于 SQL 语句并且处理不当的。而这类的变量通常都被用于 SELECT 查询中的条件语句,如 WHERE, ORDER BY, LIMIT 和 OFFSET。如果数据库支持 UNION 构造的话,攻击者还可能会把一个完整的 SQL 查询附加到原来的语句上以便从任意数据表中得到密码。因此,对密码字段加密是很重要的。 例子 27-3. 显示文章……以及一些密码(任何数据库系统)
$query = "SELECT id, name, inserted, size FROM products WHERE size = '$size' ORDER BY $order LIMIT $limit, $offset;"; $result = odbc_exec($conn, $query); ?> 可以在原来的查询的基础上添加另一个 SELECT 查询来获得密码: 'union select '1', concat(uname '-' passwd) as name, '1971-01-01', '0' from usertable; -- 假如上述语句(使用 ' 和 --)被加入到 $query 中的任意一个变量的话,那么就麻烦了。 SQL 中的 UPDATE 也会受到攻击。这种查询也可能像上面的例子那样 *** 入或附加上另一个完整的请求。但是攻击者更愿意对 SET 子句下手,这样他们就可以更改数据表中的一些数据。这种情况下必须要知道数据库的结构才能修改查询成功进行。可以通过表单上的变量名对字段进行猜测,或者进行暴力破解。对于存放用户名和密码的字段,命名的 *** 并不多。 例子 27-4. 从重设密码……到获得更多权限(任何数据库系统)
$query = "UPDATE usertable SET pwd='$pwd' WHERE uid='$uid';"; ?> 但是恶意的用户会把 ' or uid like'璵in%'; -- 作为变量的值提交给 $uid 来改变 admin 的密码,或者把 $pwd 的值提交为 "hehehe', admin='yes', trusted=100 "(后面有个空格)去获得更多的权限。这样做的话,查询语句实际上就变成了:
// $uid == ' or uid like'璵in%'; -- $query = "UPDATE usertable SET pwd='...' WHERE uid='' or uid like '璵in%'; --"; // $pwd == "hehehe', admin='yes', trusted=100 " $query = "UPDATE usertable SET pwd='hehehe', admin='yes', trusted=100 WHERE ...;"; ?> 下面这个可怕的例子将会演示如何在某些数据库上执行系统命令。 例子 27-5. 攻击数据库所在主机的操作系统(MSSQL Server)
$query = "SELECT * FROM products WHERE id LIKE '%$prod%'"; $result = mssql_query($query); ?> 如果攻击提交 a%' exec master..xp_cmdshell 'net user test testpass /ADD' -- 作为变量 $prod的值,那么 $query 将会变成
很多人喜欢去购买一些纯种的狗狗,因为不喜欢那些长相不好看的。以前翻译文章,国外一些主人习惯称叫称呼自己的串串狗血统中的一个犬种名, 我也直接翻译出来,表示对原作者的尊重。但是,很多网友给我留言:这哪里...
QQ已经成为我们的一种生活方式,很多人的聊天方式要么通...
把防护口罩从海外送至我国需要什么全过程? 伴随着肺炎疫情的发展趋势,愈来愈多的公司、本人和国外爱心企业从海外购买口罩,并根据国际邮件将防护口罩等物资供应送到我国。厌烦的收货人根据各种各样方法查看电子...
天竺鼠吃什么?说天竺鼠大家比较陌生,其实天竺鼠就是我们知道的荷兰猪,它又可以叫做荷兰鼠,这种小可爱很多人愿意去饲养,它的饲养并不难,准备好吃的、喝的,让它在笼子里玩就可以了。那么,荷兰猪喜欢吃什么呢,...
本文导读目录: 1、比特币勒索病毒是通过什么来传播的 2、勒索病毒是怎么传播 勒索病毒怎么回事介绍 3、1分钟看懂勒索病毒,勒索病毒通过什么途径传播 4、电脑被黑客勒索病毒怎么办 5、...
每日要闻许多公司使用微信作为客户服务工具来为其客户提供咨询服务。为了规范员工的服务态度,公司经理希望在公司同一个WIFI下监控微信聊天记录。应该如何实现?微信同步监控是真的吗? 监控微信聊天记录都有什...