返回頂部
關閉軟件導航
位置:首頁 > 資訊 > wordpress>0x02 SQL注入漏洞

  revision trick

  漏洞發(fā)現(xiàn)者的文章最開始提到了一個revision的trick,用于承接越權寫文章之后如何繼續(xù)進行深入攻擊。但是由于這個老外隱藏了部分技巧,導致按照他文章所說的內(nèi)容無法復現(xiàn)訂閱者賬號觸發(fā)SQL注入漏洞WordPress批量添加欄目 ,所以phithon在文章中沒有提到這個trick。我在這里本著還原作者思路的目的,向大家介紹一下關于這個trick的原理。

  下面是原文關于這個trick部分的翻譯:

  revisions字段用于記錄草稿或者更新的發(fā)布,Wordpress中用revisions記錄對于完成的提交和存儲都會在posts數(shù)據(jù)庫表中將post_type設置成revision,每個revision都會有一個’post_parent’字段,指明這個revision所基于的原版提交。

  當嘗試編輯一個revision時,會通過post_parent來進行校驗,而不是revision本身。這樣,如果我們基于一個post創(chuàng)建一個revision,那么我們可以任意設置它的狀態(tài)為“trash”之外的任何狀態(tài),即使原始的post的狀態(tài)是“trash”

  使用這個trick,我們能夠編輯這個“puppet revision”(傀儡文章?)和自由的向他添加評論,即使他的原版post已經(jīng)被丟棄到了垃圾箱當中。

  結合我們上文的越權寫漏洞,可以看出作者提出使用這個trick的目的是為了,利用我們之前寫進垃圾箱中文章(post)的修訂版(revision)來進行編輯和評論進行操縱。因為類型為post的文章,即使是當前訂閱用戶提交的WordPress批量刪除關鍵詞 ,也是沒有權限編輯的WordPress批量上傳內(nèi)容 ,而revision卻是可以編輯的。所以按照原文中所說,我們可以使用這個trick繼續(xù)后面的操作。

  漏洞原因

  這個漏洞其實是一個二次注入的漏洞,它的本質(zhì)原因是在從垃圾箱還原文章時,也要還原文章下面的評論,而在還原評論的代碼中存在直接拼接用戶可控內(nèi)容,從而導致SQL注入漏洞。下面為問題代碼:

  function wp_untrash_post_comments( $post = null ) {

  global $wpdb;

  $post = get_post($post);

  if ( empty($post) )

  return;

  $post_id = $post->ID;

  $statuses = get_post_meta($post_id, '_wp_trash_meta_comments_status', true);

  if ( empty($statuses) )

  return true;

  do_action( 'untrash_post_comments'WordPress批量添加產(chǎn)品 , $post_id );

  // Restore each comment to its original status.

WordPress批量助手

  $group_by_status = array();

  foreach ( $statuses as $comment_id => $comment_status )

  $group_by_status[$comment_status][] = $comment_id;

  foreach ( $group_by_status as $status => $comments ) {

  // Sanity check. This shouldn't happen.

  if ( 'post-trashed' == $status )

  $status = '0';

  $comments_in = implode( "', '", $comments );

  $wpdb->query( "UPDATE $wpdb->comments SET comment_approved = '$status' WHERE comment_ID IN ('" . $comments_in . "')" );

  }

  clean_comment_cache( array_keys($statuses) );

  delete_post_meta($post_id, '_wp_trash_meta_comments_status');

  do_action( 'untrashed_post_comments', $post_id );

  }

  從代碼中我們可以看到$status和$comments變量的內(nèi)容會拼接到SQL中,而這兩個變量的內(nèi)容是用戶可以操控的。因為用戶傳入的數(shù)據(jù)會先被過濾處理后存儲到數(shù)據(jù)庫中,然后直接從數(shù)據(jù)庫提取數(shù)據(jù)進行拼接,所以如果我們的攻擊語句會在數(shù)據(jù)庫提取時恢復本來面貌——標準的二次注入。

如果您覺得 0x02 SQL注入漏洞 這篇文章對您有用,請分享給您的好友,謝謝
文章地址:http://www.meyanliao.com/article/wordpress/xSQLzrld.html
解放雙手無盡可能,有問題添加天線貓微信
主站蜘蛛池模板: 中文无码字慕在线观看| 亚洲综合无码AV一区二区| 日韩av无码中文字幕| 亚洲av中文无码乱人伦在线播放 | 亚洲精品偷拍无码不卡av| 97碰碰碰人妻视频无码| 亚洲熟妇无码另类久久久| 亚洲午夜无码久久久久小说| 国99精品无码一区二区三区| 无码色AV一二区在线播放| 小SAO货水好多真紧H无码视频| 精品韩国亚洲av无码不卡区| 亚洲AV人无码综合在线观看 | 熟妇人妻系列av无码一区二区| 亚洲av无码一区二区三区天堂古代| 精品人体无码一区二区三区 | 亚洲av无码一区二区三区人妖| 亚洲AV无码专区国产乱码电影| 久久青青草原亚洲av无码| 丰满亚洲大尺度无码无码专线 | 五十路熟妇高熟无码视频| 亚洲熟妇av午夜无码不卡| 无码国产精品一区二区免费模式| 大桥久未无码吹潮在线观看| 国模吧无码一区二区三区| 国产仑乱无码内谢| 国产精品亚洲一区二区无码 | 免费无码又爽又刺激高潮软件| 久久久久久亚洲av无码蜜芽| 亚洲Av永久无码精品一区二区| 中文无码不卡的岛国片| 精品国产aⅴ无码一区二区| 久久精品aⅴ无码中文字字幕重口 久久精品国产亚洲AV无码娇色 | 无码无套少妇毛多18PXXXX| 中文精品无码中文字幕无码专区| 国产成人无码精品久久久性色| 亚洲av无码乱码在线观看野外| 亚洲精品无码av天堂| 精品无码久久久久久久久 | 无码人妻精品一区二区蜜桃百度 | 中文字幕日产无码|