日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

南邮CTF部分篇章WP

發布時間:2024/3/24 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 南邮CTF部分篇章WP 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

起名字真難

<?php function noother_says_correct($number) {$one = ord('1');$nine = ord('9');for ($i = 0; $i < strlen($number); $i++){ $digit = ord($number{$i});if ( ($digit >= $one) && ($digit <= $nine) ){return false;}}return $number == '54975581388'; } $flag='*******'; if(noother_says_correct($_GET['key']))echo $flag; else echo 'access denied'; ?>

這里要求參數是54975581388,但是前面分for循環又過濾了1~9,所以這里可以將54975581388轉化為16進制進行繞過,只要轉后不含1 ~9的數即可,因為php是可以不同進制數之間比較的。而且因為這里是弱類型,所以必須以數字進行轉換,以字符串進行轉換時不正確的。
54975581388=0xccccccccc

SQL Injection

源碼

#GOAL: login as admin,then get the flag; error_reporting(0); require 'db.inc.php';function clean($str){if(get_magic_quotes_gpc()){$str=stripslashes($str);}return htmlentities($str, ENT_QUOTES); }$username = @clean((string)$_GET['username']); $password = @clean((string)$_GET['password']);$query='SELECT * FROM users WHERE name=\''.$username.'\' AND pass=\''.$password.'\';'; $result=mysql_query($query); if(!$result || mysql_num_rows($result) < 1){die('Invalid password!'); }echo $flag;

這里的stripslashes會去除自動加的轉義符,htmlentities($str, ENT_QUOTES)會對字符串的單雙引號轉為html實體,就是如"<script>alert('123')</script>"變為&lt;script&gt;alert(&#039;123&#039;)&lt;/script&gt;gt,所以這里肯定不能將將username用’來閉合,然后將后面的注釋掉。
因為原SQL語句是SELECT * FROM users WHERE name='' AND pass='';只要我們將username后面的單引號不讓他包裹起來,那username前面的個單引號就會和pass的前一個單引號合起來作為name的值,然后后面pass傳參為 or 1 = 1,使SQL語句的執行結果為永真,就行的通了。
傳入?username=admin\$password=or 1 = 1--+
SQL語句成為了

SELECT * FROM users WHERE name='admin\' AND pass='or 1 = 1 -- '

\'只是字符串中的一個單引號
由此得到flag。

密碼重置2


要求登錄,隨便輸入什么進去看,發現通過get方式傳參,用burp suite抓包看看是不是post有東西,但是都沒有用。判斷SQL注入是不可能的了。
這里看的別人的WR,感覺比較新穎。
vim的特性,自動備份:

一、vim備份文件
默認情況下使用Vim編程,在修改文件后系統會自動生成一個帶~的備份文件,某些情況下可以對其下載進行查看; eg:index.php普遍意義上的首頁,輸入域名不一定會顯示。 它的備份文件則為index.php~
二、vim臨時文件
vim中的swp即swap文件,在編輯文件時產生,它是隱藏文件,如果原文件名是submit,則它的臨時文件
.submit.swp。如果文件正常退出,則此文件自動刪除。

從html源碼中看到跳轉到的是submit.php,因此這里會有臨時文件.submit.php.swp,打開看得到源碼

........榪欎竴琛屾槸鐪佺暐鐨勪唬鐮�......../* 濡傛灉鐧誨綍閭鍦板潃涓嶆槸綆$悊鍛樺垯 die() 鏁版嵁搴撶粨鏋�-- -- 琛ㄧ殑緇撴瀯 `user` --CREATE TABLE IF NOT EXISTS `user` (`id` int(11) NOT NULL AUTO_INCREMENT,`username` varchar(255) NOT NULL,`email` varchar(255) NOT NULL,`token` int(255) NOT NULL DEFAULT '0',PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;-- -- 杞瓨琛ㄤ腑鐨勬暟鎹� `user` --INSERT INTO `user` (`id`, `username`, `email`, `token`) VALUES (1, '****涓嶅彲瑙�***', '***涓嶅彲瑙�***', 0); */........榪欎竴琛屾槸鐪佺暐鐨勪唬鐮�........if(!empty($token)&&!empty($emailAddress)){if(strlen($token)!=10) die('fail');if($token!='0') die('fail');$sql = "SELECT count(*) as num from `user` where token='$token' AND email='$emailAddress'";$r = mysql_query($sql) or die('db error');$r = mysql_fetch_assoc($r);$r = $r['num'];if($r>0){echo $flag;}else{echo "澶辮觸浜嗗憖";} }

里面有中文亂碼,但是讀php代碼還是可以知道token=0000000000
然后從index.php的html文件中得到<meta name="admin" content="admin@nuptzj.cn" />郵箱為admin@nuptzj.cn,將結果輸入進去即可。

總結

以上是生活随笔為你收集整理的南邮CTF部分篇章WP的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。