MySQL中的一个有趣的逻辑漏洞

遇到MySQL中的一个有趣的逻辑漏洞,给大家分享一下.

某系统数据库是mysql。user表有个code字段,类型是int(11),这个字段是保存一个随机数,用来找回密码的时候做验证,默认值是0。

找回密码时候的步骤是,首先填写自己邮箱,接收重置密码的邮件,点击链接,访问如下代码:

if (!empty($_GET['email']) && !empty($_GET['code'])) 
{ 
    if (!$db->count('user',"email='{$_GET['email']}' AND code='{$_GET['code']}'")) 
        die('error'); 
    $_SESSION['email'] = $_GET['email']; 
    ... 
}

在数据库中查找email=$_GET['email']并且code=$_GET['code']的行数,如果行数为0则die出去,否则设置$_SESSION['email'] = $_GET['email']; 
最后就以$_SESSION['email']内存储的邮箱重置密码。 

看似似乎没问题,只有当email为你的email,并且你知道他的随机code的时候,才能不die,才能获得$_SESSION['email']。 
但关键问题就是:code的默认值是0,也就是说所有用户只要没有重置过密码,他的code就是0,所以等于说我知道了所有用户的code,那我不就可以重置所有用户的密码了吗? 

不不,等下,我们看到这行代码: 
if (!empty($_GET['email']) && !empty($_GET['code'])) 
必须要!empty($_GET['code'])的时候,才可能进入这个if语句。熟悉php的人都知道,empty(0)是返回真的。所以说,如果$_GET['code']=0的话,根本进不来这个if语句。 
那怎么办? 


又涉及到mysql一个tip,很容易犯错的点。 
我 之前说了,code这个字段的类型是整型int(11)。而在mysql里面,当字段类型为整型,而where语句中的值不为整型的时候,会被转换成整型 才放入查询。也就是说,如果where code='xxx',xxx不为整型的话,则会先将xxx转换成整数,才放入查询。 
也就是说,如果我们传入的字符串为0aaa,则会转换成0,再执行。 
我们可以来做个试验, 
0015.jpg
上图大家可以看到,select count(*) from `user` where `id`='0a';和select count(*) from `user` where `id`='0';得到的结果都是1。 

所 以通过这个tip,就可以绕过if (!empty($_GET['email']) && !empty($_GET['code'])),只要我们传入的$_GET['code']=0xxx,就可以进入if语句,并且让select count(*)语句返回1,最后找回任意用户密码,不需要爆破。

注:本文属于Mrxn网络转载,原地址:https://www.leavesongs.com/PENETRATION/findpwd-funny-logic-vul.html


Mrxn 发布于 2015-6-27 17:07

Mrxn教你让emlog自动实时提交至百度收录-SEO利器,站长们必看

Mrxn教你让emlog自动实时提交至百度收录-SEO利器,站长们必看

06-22-49-04.png

本文为Mrxn's Blog https://mrxn.net原创 转载请著名出处和链接,谢谢合作,互相尊重.

判断内容页是否百度收录,并且以博主和或者理员身份访问博客文章时自动向百度提交未收录的文章,后期会加如其他搜索引擎的自动提交功能.请关注Mrxn's Blog https://mrxn.net Email:admin#mrxn.net

下面我来教大家如何实现上述操作:

我们在modul.php底部加上如下代码

<?php
//判断内容页是否百度收录,并且以博主和或者理员身份访问博客文章时自动向百度提交未收录的文章,后期会加如其他搜索引擎的自动提交功能.请关注Mrxn's Blog https://mrxn.net Email:admin#mrxn.net
function baidu($url){
 $url='http://www.baidu.com/s?wd='.$url;
 $curl=curl_init();
 curl_setopt($curl,CURLOPT_URL,$url);
 curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
 $rs=curl_exec($curl);
 curl_close($curl);
 if(!strpos($rs,'没有找到')){
     return 1;
   }
 else{
     return 0;
  }   
     }
  function checkbaidu($id){
  $url=Url::log($id);
  if(baidu($url)==1){
   echo "百度已收录";
  } else {
   if (ROLE == 'admin' || ROLE == 'writer') {
    $urls = array(
      $url,
  );
  $api = 'http://data.zz.baidu.com/urls?site=mrxn.net&token=你自己的token值';
  $ch = curl_init();
  $options =  array(
     CURLOPT_URL => $api,
     CURLOPT_POST => true,
     CURLOPT_RETURNTRANSFER => true,
     CURLOPT_POSTFIELDS => implode("\n", $urls),
     CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),);
  curl_setopt_array($ch, $options);
  $result = curl_exec($ch);
  echo 'success';
   }
     echo "<a style=\"color:red;\" rel=\"external nofollow\" title=\"点击提交收录!\" target=\"_blank\" href=\"http://zhanzhang.baidu.com/sitesubmit/index?sitename=$url\">已自动提交度娘等待收录</a>";
  }
 }
?>

(文章结尾有代码下载)然后在文章内容页引用即可,具体方法,不会的朋友请前往这里查看:传送门-点我

需要注意的其一:


$api = 'http://data.zz.baidu.com/urls?site=mrxn.net&token=你自己的token值';



$api 中的token值请换成你自己的token,获取方法:前往百度站长平台获取:http://zhanzhang.baidu.com/linksubmit/index


需要注意的其二,我把百度官方的函数做了一个小小的修改,将


$result = curl_exec($ch); echo $result;修改成了:$result = curl_exec($ch);echo 'success';


因为不修改的话就会出现这种情况:


06-22-51-53.png返回值...很碍眼和排版,当然觉得没啥的可以改回去.修改后的效果:

06-23-23-44.png是不是好看多了 -_- || 个人觉得....

至于是不是真的成功了.请往下看:

06-22-41-04.png

上图显示的是我博客每天的提交量(配额)上限:50 ,PS: 这个配额其实就是百度分配给每个网站的提交上限,超过这个数量,即使你提交了,度娘也是不要你的....555

她这个配额是根据你网站的每天访问量,活跃度,PR值.等等综合因数决定的,具体的请自行去度娘那里慢慢查看.我就不细说了.

我打开两个我最近刚刚写的文章(估计度娘未收录的):

06-22-51-53.png 图一

06-23-23-44.png图二


06-22-42-15.png 图三


在查看我的工具显示剩余配额还有多少.即验证是否成功提交了一次:

06-22-56-20.png

从图中我们可以看到剩余配额已近减少了两次.OK 至此,我们的方法成功了.以后我们写完一篇文章在查看一下,是不是就自动完成了SEO任务之一了呢?

当然,百度已近收录的就会显示如下效果:

06-22-49-04.png

各位看官,看完了还不赶紧去试试.让你的收录飞速提升!!!  看完了是不是应该评论评论吐槽吐槽呢?

注意:刷流量的孩子,在操作的时录后台了.不然可能优化过度,出现不良反应哦.


本文为Mrxn's Blog https://mrxn.net原创 转载请著名出处和链接,谢谢合作,互相尊重.

判断内容页是否百度收录,并且以博主和或者理员身份访问博客文章时自动向百度提交未收录的文章,后期会加如其他搜索引擎的自动提交功能.请关注Mrxn's Blog https://mrxn.net Email:admin#mrxn.net

源代码下载:baidu-seo.zip





Mrxn 发布于 2015-6-27 15:26

Mrxn分享emlog技巧之---让emlog文章中显示中文星期几的方法

Mrxn分享emlog技巧之---让emlog文章中显示中文星期几的方法,先上效果图,就像本博客微语公告一样的效果:

01.png

先介绍几种将php中星期几以中文方式显示的方法:


<?php
function get_chinese_weekday($datetime)
{
    $weekday = date('w', strtotime($datetime));
    return '星期' . ['日', '一', '二', '三', '四', '五', '六'][$weekday];
}
?>

以上是PHP>=5.4版本的.



<?php
function get_chinese_weekday($datetime)
{
    $weekday  = date('w', strtotime($datetime));
    $weeklist = array('日', '一', '二', '三', '四', '五', '六');
    return '星期' . $weeklist[$weekday];
}
?>

以上是PHP<5.4版本的.

Debain / Ubuntu 若有安裝 php5-intl 的套件, 可以使用 IntlDateFormatter 来写 (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

下面介绍在emlog中具体实现方法:

以默认模版为例在log_list.php找到:


<?php echo gmdate('Y-n-j', $value['date']); ?>


替换为:

<?php $weekarray=array("日","一","二","三","四","五","六");echo gmdate('Y年n月j日 G:i', $value['date']);echo" 星期".$weekarray[gmdate('w', $value['date'])];?>

如果是内容页请使用下面代码,以默认模版为例在echo_log.php找到

<?php echo gmdate('Y-n-j', $date); ?>

替换为:

<?php $weekarray=array("日","一","二","三","四","五","六");echo gmdate('Y年n月j日 G:i', $date);echo " 星期".$weekarray[gmdate('w',$date)];?>






Mrxn 发布于 2015-6-27 09:52

Mrxn分享本博客的幻灯片样式小计--气死 -_- |

Mrxn分享本博客的幻灯片样式小计--气死 -_- |

QQ截图20150626235257.png

喜欢的就按照以下步骤折腾:


代码是借助封装js代码msclass进行修改,需要修改三个文件:module.php,head.php,index.php或者log_list.php。具体代码修改如下:

一、在

module .php

文件底部加入如下代码




<pre style="overflow:auto" ;class="prettyprint lang-php linenums"><?php
//slide数据源
//定义函数,只有一个参数$num,即为调用的数据条数
function get_flash_data_img($num){
//面向对象中静态方法实例化数据库对象(我是这么理解的)
$db = MySql::getInstance();
//下面是数据库语句,即获取gid,title,data,content等内容,非隐藏,时间正序,总共$num条数据,按照时间排序(包括首页置顶和分类置顶)
$sql = "SELECT gid,title,date,content FROM ".DB_PREFIX."blog inner join ".DB_PREFIX."sort WHERE hide='n' AND type='blog' AND top='y' | sortop='y' AND sortid=sid order by date DESC LIMIT 0,$num";
// $sql = "SELECT gid,title,date,content FROM ".DB_PREFIX."blog WHERE hide='n' ORDER BY date DESC LIMIT 0,$num";
$go = $db->query($sql);
//开始循环进行显示
while($row = $db->fetch_array($go)){
$img_url = '';
//picthumb()函数为获取文章附件图片的函数,后面会补上
//如果附件中含有图片,那么$img_url就等于附件图片的地址
if(picthumb($row['gid'])){
$img_url = picthumb($row['gid']);
//pin_thumb()函数为获取文章中图片链接的函数,后面会补上
//如果附件中不含图片,但是文章中有外链图片,则$img_url等于外链图片的地址
}elseif(pic_thumb($row['content'])){
$img_url = pic_thumb($row['content']);
//如果以上两种情况都没有图片,那么$img_url就等于默认图片
//如下默认图片的路径是模板路径下images文件夹下的default_flash.jpg文件
}else{
$img_url = TEMPLATE_URL.'images/default_flash.jpg';
}
//下面这一句是非常关键的,$data即为我们上面步骤所说的数据
//第二步骤中我们知道格式为“<b><span style="color:#e53333;"><div><img src="图片地址1" stitle="标题名1" slink="链接地址1" /></div></span></b>”
//如下格式必须和上面步骤中提取出来的数据格式一致。如果是不同的幻灯片插件,只需此处的格式不同而已。
$data1 = '<li><img src="'.$img_url.'" stitle="'.$row['title'].'" slink="'.Url::log($row['gid']).'" /></li>';
$data2 = '<li><a href="'.Url::log($row['gid']).'">'.$row['title'].'</a></li>';
//最后打印出数据,由于当前代码的位置是在while的循环体,因此会循环$num条数据
?>
<li><a href="<?php echo Url::log($row['gid']); ?>"><img src="<?php echo $img_url; ?>" alt="<?php echo $row['title']; ?>" width="510" height="280" /></a></li>
<?php } ?>
<?php } ?>
<?php
//slide数据源
//定义函数,只有一个参数$num,即为调用的数据条数
function get_flash_data_art($num){
//面向对象中静态方法实例化数据库对象
$db = MySql::getInstance();
//下面是数据库语句,即获取gid,title,data,content等内容,非隐藏,时间正序,总共$num条数据,按照时间排序(包括首页置顶和分类置顶)
$sql = "SELECT gid,title,date,content FROM ".DB_PREFIX."blog WHERE hide='n' AND type='blog' AND top='y' | sortop='y' AND sortid=sid order by date DESC LIMIT 0,$num";
// $sql = "SELECT gid,title,date,content FROM ".DB_PREFIX."blog WHERE hide='n' ORDER BY date DESC LIMIT 0,$num";
$go = $db->query($sql);
//开始循环进行显示
while($row = $db->fetch_array($go)){
$img_url = '';
//picthumb()函数为获取文章附件图片的函数,后面会补上
//如果附件中含有图片,那么$img_url就等于附件图片的地址
if(picthumb($row['gid'])){
$img_url = picthumb($row['gid']);
//pin_thumb()函数为获取文章中图片链接的函数,后面会补上
//如果附件中不含图片,但是文章中有外链图片,则$img_url等于外链图片的地址
}elseif(pic_thumb($row['content'])){
$img_url = pic_thumb($row['content']);
//如果以上两种情况都没有图片,那么$img_url就等于默认图片
//如下默认图片的路径是模板路径下images文件夹下的default_flash.jpg文件
}else{
$img_url = TEMPLATE_URL.'images/default_flash.jpg';
}
//下面这一句是非常关键的,$data即为我们上面步骤所说的数据
//第二步骤中我们知道格式为“<b><span style="color:#e53333;"><div><img src="图片地址1" stitle="标题名1" slink="链接地址1" /></div></span></b>”
//如下格式必须和上面步骤中提取出来的数据格式一致。如果是不同的幻灯片插件,只需此处的格式不同而已。
$data1 = '<li><img src="'.$img_url.'" stitle="'.$row['title'].'" slink="'.Url::log($row['gid']).'"></li>';
$data2 = '<li><a href="'.Url::log($row['gid']).'">'.$row['title'].'</a></li>';
//最后打印出数据,由于当前代码的位置是在while的循环体,因此会循环$num条数据
?>
<li class=""><a href="<?php echo Url::log($row['gid']); ?>"><?php echo $row['title']; ?></a></li>
<?php } ?>
<?php } ?>
<?php
//get thumbs(获取附件图片)
function picthumb($blogid) {
$db = MySql::getInstance();
$sql = "SELECT FROM ".DB_PREFIX."attachment WHERE blogid=".$blogid." AND (filepath LIKE '%jpg' OR filepath LIKE '%gif' OR filepath LIKE '%png') ORDER BY aid ASC LIMIT 0,1";
// die($sql);
$imgs = $db->query($sql);
while($row = $db->fetch_array($imgs)){
$pict.= ''.BLOG_URL.substr($row['filepath'],3,strlen($row['filepath'])).'';
}
return $pict;
}
?>
<?php
//get thumbs(获取图片链接)
function pic_thumb($content){
//preg_match_all全局匹配content中的图片地址,并存入$img变量
preg_match_all("|<img[^>]+src=\"([^>\"]+)\"?[^>]
>|is", $content, $img);
//当图片存在时,获取第一张图片,地址保存在$imgsrc中
$imgsrc = !empty($img[1]) ? $img[1][0] : '';
if($imgsrc):
return $imgsrc;
endif;
}
?>

二、在

head.php

引入封装js特效代码:




<pre style="overflow:auto" ;class="prettyprint lang-php linenums"><script type="text/javascript" src="<?php echo TEMPLATE_URL; ?>js/MSClass.js" language="javascript"></scrip

三、在

index.php

或者

log_list.php

添加调用参数:




<pre style="overflow:auto" ;class="prettyprint lang-php linenums"><script type="text/javascript">
function $(id){return document.getElementById(id)};
</script>
<div id="focusPic">
<div id="focusLeft"><ul id="focuscontent"><?php echo get_flash_data_img(10); ?></ul></div>
<div id="focusTitle"><ul id="focusMenu"><?php echo get_flash_data_art(10); ?></ul></div>
<div class="clear"></div>
</div>
<script type="text/javascript">
new Marquee(
{
MSClassID : "focusLeft",
ContentID : "focuscontent",
TabID : "focusMenu",
Direction : 0,
Step : 0.3,
Width : 515,
Height : 280,
Timer : 20,
DelayTime : 3000,
WaitTime : 0,
ScrollStep: 280,
SwitchType: 0,
AutoStart : 1,
})
</script>

最后,附加css样式表,在首页css样式表文件中加入如下样式表代码:



<pre style="overflow:auto" ;class="prettyprint lang-css linenums">#focusPic{width:100%; height:300px; margin:0 auto; clear:both; text-align:center; padding:0px;background-color:#ffffff;}

focusPic ul{margin:0;padding:0;border:0}

#focusPic #focusTitle{width:300px; float:right; font-size:12px; text-align:left;}
#focusPic #focusTitle li{height:28px; line-height:28px; background:url(images/focusTitleBg.gif) left 0 no-repeat; cursor:pointer; font-size:12px; padding-left:20px;overflow:hidden;}
#focusPic #focusMenu li.active{background-position:0 -29px; font-weight:bold;}
#focusPic #focusMenu li.active a{color:#f2f2f2;}
#focusPic #focusLeft{width:515px; height:280px; overflow:hidden; float:left;margin-top: 5px;}
#focusPic #focusLeft #focuscontent li{width:515px;height:280px; overflow:hidden;}</pre>

附件可以在这里下载,或者是自己 Ctrl+U 下载 : MSClass.js.7z.zip

最后感谢 简爱Finally 提供的友情帮助  思密达! -_- ||



Mrxn 发布于 2015-6-26 15:05

免费获得30天极客学院VIP

极客学院IT在线教育平台隶属于北京优亿致远无线技术有限公司(亦称北京易联致远无线技术有限公司)。


极客学院是中国最大的IT职业在线教育平台。极客学院的理念是通过最新实战课程,帮助职业开发者系统学习Android、Cocos2d- x、iOS、HTML5、Java等高薪所需的职业开发技能。目前,超过80万专业技术开发者通过极客学院学得了更有竞争力的最新IT技能。

06-20-45-07.png

2014年,中国几乎所有的热门技术及应用课程,都由极客学院首发。包括:中国第一个「Flappy Bird」课程、中国第一个「2048」的课程、中国第一个「围住神经猫」等诸多中国乃至全球首发课程。在六月份,WWDC苹果发布全新的Swift开发 语言时,极客学院更是7个小时就上线了Swift的开发课程。


创始团队写过中国大陆第一本Android开发教材,重印高达18版,是Android开发学习入门必读红宝书。同时创办了中国最大的移动开发者社区eoe(注册用户超200W)。

现在加入极客就免费享受30天VIP会员哦: 点击我领取30天会员

06-20-44-47.png


标签: 编程

Mrxn 发布于 2015-6-25 11:51

十大渗透测试系统之---DVWA1.0.8练习笔记(二)

1.Command Execution (命令执行) --- Ping测试

我们打开dvwa后选择-Command Execution可以看到:

06-13-42-18.png

那我们在文本框随便输入一个IP看看,我输入 192.168.1.1 得到如下结果:

06-13-50-42.png

可以ping 说明是可以执行命令的 ,那我们试试加上一些命令呢? 例如加上列目录的命令 &dir (Linux下不一样  自行修改)

06-13-56-05.png

OK,至此说明命令执行测试成功,至于还可以干啥,什么命令就自己慢慢练习吧.

源码如下:


<pre style="overflow:auto" ;class="prettyprint lang-php linenums"> <?php
if( isset( $_POST[ 'submit' ] ) ) {
$target = $_REQUEST[ 'ip' ];
// Determine OS and execute the ping command.
if (stristr(php_uname('s'), 'Windows NT')) {
$cmd = shell_exec( 'ping ' . $target );
echo '<pre>'.$cmd.'</pre>';
} else {
$cmd = shell_exec( 'ping -c 3 ' . $target );
echo '<pre>'.$cmd.'</pre>';
}
}
?>

攻防FAQ:


  命令执行(命令注入)攻击的目的,是在易受攻击的应用程序中执行攻击者指定的命令,在这样的情况下应用程序执行了不必要的命令就相当于是攻击者得到了一个系统的Shell,攻击者可以利用它绕过系统授权,基于权限继承原则,Shell将具有和应用程序一样的权限。

      命令执行是由于开发人员对用户的输入未进行严格的过滤导致,通常可以通过表单,cookie,以及http头进行操作。

      针对linux系统,我们可以使用;来实行命令执行,针对windows系统,我们可以使用&&来实行命令执行。例如: 127.0.0.1 && dir


2.Cross Site Request Forgery (CSRF--跨站请求伪造)

06-14-00-28.png

密码就自动被修改了.

其源码如下:


<pre style="overflow:auto" ;class="prettyprint lang-php linenums"> <?php
if (isset($_GET['Change'])) {
// Turn requests into variables
$pass_new = $_GET['password_new'];
$pass_conf = $_GET['password_conf'];
if (($pass_new == $pass_conf)){
$pass_new = mysql_real_escape_string($pass_new);
$pass_new = md5($pass_new);
$insert="UPDATE users SET password = '$pass_new' WHERE user = 'admin';";
$result=mysql_query($insert) or die('<pre>' . mysql_error() . '</pre>' );
echo "<pre> Password Changed </pre>";
mysql_close();
}
else{
echo "<pre> Passwords did not match. </pre>";
}
}
?>

攻防FAQ:


  跨站请求伪造(cross-site request forgery)通常缩写为XSRF,直译为跨站请求伪造,即攻击者通过调用第三方网站的恶意脚本或者利用程序来伪造请求,当然并不需要向用户端伪装任何 具有欺骗的内容,在用户不知情时攻击者直接利用用户的浏览器向攻击的应用程序提交一个已经预测好请求参数的操作数据包,利用的实质是劫持用户的会话状态, 强行提交攻击者构造的具有“操作行为”的数据包。可以看出,最关键的是劫持用户的会话状态,所以说,导致XSRF漏洞的主要原因是会话状态的保持没有唯一 时间特征的标识,即是说在使用HTTPCookie传送会话令牌的过程中,应该更谨慎的判断当前用户,而不是简单的通过操作数据包的Cookie值来鉴 别,简单的说是每次数据交互时,对提交的数据包实行唯一性标识。

3.Insecure CAPTCHA (不安全的验证码)

我们需要创建一个reCAPTCHA秘钥,打开https://www.google.com/recaptcha/admin/create 即可创建,需要查资料的同学,请查看我之前发布的免费VPN:https://mrxn.net/free/173.html  或者是使用我提供的这两个:

$_DVWA['recaptcha_public_key'] = "6Lch89YSAAAAAPtf0M1lXQnqx3lBH27Syob4Xe9I";
$_DVWA['recaptcha_private_key'] = "6Lch89YSAAAAANFwnpEQMwVvCg90mzTF_FuAwcr5";

然后在更改密码输入框就会出现验证码:

06-14-33-45.png

这时候我们输入新密码 不用输入验证码就可以修改密码.

源码:

<?php
if( isset( $_POST['Change'] ) && ( $_POST['step'] == '1' ) ) {
    $hide_form = true;
    $user = $_POST['username'];
    $pass_new = $_POST['password_new'];
    $pass_conf = $_POST['password_conf'];
    $resp = recaptcha_check_answer ($_DVWA['recaptcha_private_key'],
        $_SERVER["REMOTE_ADDR"],
        $_POST["recaptcha_challenge_field"],
        $_POST["recaptcha_response_field"]);
    if (!$resp->is_valid) {
        // What happens when the CAPTCHA was entered incorrectly
        echo "<pre><br />The CAPTCHA was incorrect. Please try again.</pre>";
        $hide_form = false;
        return;    
    } else {
            if (($pass_new == $pass_conf)){
            echo "<pre><br />You passed the CAPTCHA! Click the button to confirm your changes. <br /></pre>";
            echo "
            <form action=\"#\" method=\"POST\">
                <input type=\"hidden\" name=\"step\" value=\"2\" />
                <input type=\"hidden\" name=\"password_new\" value=\"" . $pass_new . "\" />
                <input type=\"hidden\" name=\"password_conf\" value=\"" . $pass_conf . "\" />
                <input type=\"submit\" name=\"Change\" value=\"Change\" />
            </form>";
            }    
            else{
                    echo "<pre> Both passwords must match </pre>";
            $hide_form = false;
            }
    }
}
if( isset( $_POST['Change'] ) && ( $_POST['step'] == '2' ) ) 
{
    $hide_form = true;
        if ($pass_new != $pass_conf)
        {
                echo "<pre><br />Both passwords must match</pre>";
        $hide_form = false;
                return;
        }
        $pass = md5($pass_new);
        if (($pass_new == $pass_conf)){
               $pass_new = mysql_real_escape_string($pass_new);
               $pass_new = md5($pass_new);
               $insert="UPDATE `users` SET password = '$pass_new' WHERE user = '" . dvwaCurrentUser() . "';";
               $result=mysql_query($insert) or die('<pre>' . mysql_error() . '</pre>' );
               echo "<pre> Password Changed </pre>";
               mysql_close();
        }
        else{
               echo "<pre> Passwords did not match. </pre>";
        }
}
?> 
攻防FAQ:

CAPTCHA 是一种人机识别的程序,用来判断访问网站的是人还是机器,你应该看到过很多网站使用了扭曲的图片或者是文字来防止"机器人"或者其它自动化的程序,CAPTCHA可以保护网站免受垃圾信息的骚扰,因为没有计算机可以识别这种技术。

CAPTCHAs通常用来保护敏感信息,防止被机器人(自动化程序)滥用,比如用户登陆,更改密码,发布内容等等。本例中CAPTCHAs保护更改管理员密码功能,它可以从一定限度上防止CSRF攻击和自动化猜解工具。

本例中的CAPTCHA很容易绕过,开发人员假设所有人都可以通过第一关的认证进行下一关,其中的密码是实际的更改,提交新密码后将直接更新到数据库中。

在低安全级别来完成此次挑战所需要的参数如下:

step=2&password_new=password&password_conf=password&Change=Change

在中安全级别,开发者试图保持会话状态并跟踪它是否完成之前提交的验证码,但是("passed_captcha")状态是在在客户端上提交,所以也可以很容易绕过:

step=2&password_new=password&password_conf=password&passed_captcha=true&Change=Change

在高安全级别,开发者移除了所有的攻击途径,处理过程得到简化,使数据和CAPTCHA验证发生在一个单一的步骤,另外开发者将状态变量存佬在服务器端。


注:都是博主自己测试玩耍的,大牛绕道.菜鸟勿喷.


Mrxn 发布于 2015-6-25 05:38

关于Emlog输出微语标题的相关教程

最近几天鼓捣个人自 用的模板,加了一个面包屑,过程中出现了一些小问题,比如使用原来的代码<?php echo Option::get('twnavi');
?>,碎语标题没有显示出来。于是到论坛上准备问一下,刚好有其它 emer
在问这个问题。在该帖的一些回复提示下,自己试验了一下,终于解决了。原来是换成新的代码了,而且就在 t/index.php
文件里面,只是自己不够细心,一直没有注意。
在微语页面,直接输出就可以了(因为在 t/index.php 里面已经读取了相关数据):

<?php echo $Navi_Model->getNaviNameByUrl('t');?>

是但是在非微语页面,要先读取一下数据:

<?php $Nav&i_Model = new Navi_Model();echo $Navi_Model->getNaviNameByUrl('t');?>

现在再进入微语页面,那个久违的标题终于又出来了:

转自舍力博客

标签: emlog

Mrxn 发布于 2015-6-25 02:46

Avira system speedup 最新破解版

Avira system speedup 是著名免费杀毒软件小红伞的一个系统加速,垃圾清理的超级好用的工具,其功能堪比 ccleanner 了.

但是是收费的,安装后只能免费使用一次,那岂不是很不爽么,这不能难道我们天朝的孩子,更难不到国外的大神!

06-11-06-43.png

下面就由Mrxn给你讲解如何免费使用吧!(此处应有掌声! -_- ||)

 首先下载Avira system speedup的安装包:官网下载:

http://www.avira.com/en/download-start/product/avira-system-speedup

或者是我的压缩包,里面也包含最新版的安装包;

安装完后,切记,不要运行!

然后解压我的压缩包里面的破解补丁,把补丁程序放到 Avira system speedup的安装路径下面即可---

06-11-19-00.png

然后运行补丁程序即可:

06-11-20-03.png

之后就打开Avira system speedup愉快的玩耍吧!

因为补丁是俄国的大神制作的,所以打开后界面是俄语,按下面提示修改就行了:

06-11-06-43.png

06-11-07-54.png

OK ,到此 完工,那我们来看一下它的注册证明:

06-11-10-58.png

安装包和补丁下载地址: http://pan.baidu.com/s/1bnHbiof


Mrxn 发布于 2015-6-24 02:38

免费下载江门网站设计的网页整站源码

今天Mrxn给大家分享一个干货....免费下载江门网站设计的网页整站源码

其原网站的整站源码很贵的说:

01.png

作为屌丝的我们买不起,但是要是你看上了其中的一款源码呢?咋办?看我给你演示如何下载的,跟我来学习这种淫荡的姿势吧!

首先打开:http://www.jm15.com/design/download/login.asp

02.png

随便输入一个>6位数的就行;

然后咧:03.png 进去后点击---下载新的网页设计--

继续:04.png 选择---整站---

然后会发现一个重要提醒:就在您现在的位置下面--点进去会发现亮点哟:

05.png

这就是关键了,相信懂得都知道怎么操作了;我还是给不懂得朋友说说吧:

看到图就可以猜测,我们是不是可以自己构造下载语句呢?

那就来试试吧!

06.png

纳尼,在浏览器地址栏输入:http://demo.jm15.com:99/download/4204a3088a26bc2e.zip  回车,居然可以下载的....

那么,该时候爆发你的奇淫技巧的时候了:

4204a3088a26bc2e ---拿到MD5网站解密如下:

07.png

652 ---纳尼! -_- | 这不就是文件编号么.....

OK,新技能get!  那我们就可以自己构造要下载的所有的源码了:

http://demo.jm15.com:99/download/4204a3088a26bc2e.zip  把Zip前面的蓝色MD5值替换一下就OK啦:

08.png

在这里提供一个网站供大家测试使用:http://www.md5.cc   你只需要输入数字 下面立马就出MD5值的16位结果了....是不是很爽......

注:此文所有内容仅供测试参考之用,禁止用于非法用途.

另;已通知其管理员,所以骚年们,要测试的赶紧呀!

09.png 其实用百度云离线下载是个不错的方法! -_- |


标签: 分享 源码

Mrxn 发布于 2015-6-23 15:09

个人资料

    blogger

    Mrxn

    一个关注网络安全,热爱黑客技术的好青年!

搜索

最新评论