十六進製制與數字

2021-10-03 02:32:35 字數 827 閱讀 8236

原始碼:檔名:digit1.php

<?php 

error_reporting(0)

;if(empty($_get[

'password'])

)function noother_says_correct($temp)';

$one=

ord(

'1')

; $nine=

ord(

'9')

; $number=

'3735929054'

;//check all the input characters!

for($i=

0;$i

;$i++)

);if(

($digit>=$one)&&

($digit<=$nine))}

if($number==$temp)

return $flag;

}$temp=$_get[

'password'];

echo noother_says_correct($temp)

;?>

**分析:

這裡,它不讓輸入1到9的數字,但是後面卻讓比較一串數字,平常的方法肯定就不能行了,大家都知道計算機中的進製轉換,當然也是可以拿來比較的,0x開頭則表示16進製制,將這串數字轉換成16進製制之後發現,是deadc0de,在開頭加上0x,代表這個是16進製制的數字,然後再和十進位制的3735929054比較,答案當然是相同的,返回true拿到flag。

?password=0xdeadc0de

成功獲取flag。

參考鏈結

Bugku 十六進製制與數字比較

今日份ctf。2018年11月2日 首先來看看原始碼 error reporting 0 function noother says correct temp one ord 1 ord 返回字元的 ascii 碼值 nine ord 9 ord 返回字元的 ascii 碼值 number 3735...

bugku 十六進製制與數字比較

error reporting 0 function noother says correct temp one ord 1 ord 返回字元的 ascii 碼值 nine ord 9 ord 返回字元的 ascii 碼值 number 3735929054 check all the input ...

CString轉十六進製制數字

借用strtol函式可以直接將乙個cstring物件轉化為任意數制的整數。比如 cstring st 20 int n strtol st,null,16 strtol函式原型 long int strtol const char nptr,char endptr,int base 引數base範圍...