Write Up
-
보호되어 있는 글입니다.
[Web] CSRF-1보호되어 있는 글입니다.
2023.01.31 -
보호되어 있는 글입니다.
[Web] Cookie보호되어 있는 글입니다.
2023.01.30 -
Command Injection이다. 일단 127.0.0.1을 넣으면 ping의 결과를 볼 수 있다. ping이 3번만 오는 것으로 보아 명령어는 ping -n 3 127.0.0.1인 것을 추측해볼 수 있다. shell_exec("ping -n 3 $ip"); 그리고 php 코드 또한 위라고 추측할 수 있다. Command Injection은 보통 메타문자를 많이 사용한다. ;ls -al을 넣으니 모든 file list가 나온다. 수상한 .passwd를 열어보니 password가 나왔다. 노출된 password를 입력하면 문제가 풀린다. Savoir, penser, rêver. Tout est là.
[Root-me] Web Server 6. PHP - Command InjectionCommand Injection이다. 일단 127.0.0.1을 넣으면 ping의 결과를 볼 수 있다. ping이 3번만 오는 것으로 보아 명령어는 ping -n 3 127.0.0.1인 것을 추측해볼 수 있다. shell_exec("ping -n 3 $ip"); 그리고 php 코드 또한 위라고 추측할 수 있다. Command Injection은 보통 메타문자를 많이 사용한다. ;ls -al을 넣으니 모든 file list가 나온다. 수상한 .passwd를 열어보니 password가 나왔다. 노출된 password를 입력하면 문제가 풀린다. Savoir, penser, rêver. Tout est là.
2023.01.30 -
보호되어 있는 글입니다.
[Web] XSS-1보호되어 있는 글입니다.
2023.01.30 -
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract Telephone { address public owner; constructor() { owner = msg.sender; } function changeOwner(address _owner) public { if (tx.origin != msg.sender) { owner = _owner; } } } 우리의 mission은 해당 contract의 owner를 탈취하는 것이다. 코드를 보면 owner는 msg.sender로 해당 contract를 호출한 주소이다. changeOwner() 함수를 보면 tx.origin != msg.sender가 같지 않으면 owner가 우리가 입력한 _o..
[Ethernaut] Telephone// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract Telephone { address public owner; constructor() { owner = msg.sender; } function changeOwner(address _owner) public { if (tx.origin != msg.sender) { owner = _owner; } } } 우리의 mission은 해당 contract의 owner를 탈취하는 것이다. 코드를 보면 owner는 msg.sender로 해당 contract를 호출한 주소이다. changeOwner() 함수를 보면 tx.origin != msg.sender가 같지 않으면 owner가 우리가 입력한 _o..
2023.01.30 -
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract CoinFlip { uint256 public consecutiveWins; uint256 lastHash; uint256 FACTOR = 57896044618658097711785492504343953926634992332820282019728792003956564819968; constructor() { consecutiveWins = 0; } function flip(bool _guess) public returns (bool) { uint256 blockValue = uint256(blockhash(block.number - 1)); if (lastHash == blockValue)..
[Ethernaut] CoinFlip// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract CoinFlip { uint256 public consecutiveWins; uint256 lastHash; uint256 FACTOR = 57896044618658097711785492504343953926634992332820282019728792003956564819968; constructor() { consecutiveWins = 0; } function flip(bool _guess) public returns (bool) { uint256 blockValue = uint256(blockhash(block.number - 1)); if (lastHash == blockValue)..
2023.01.30 -
// SPDX-License-Identifier: MIT pragma solidity ^0.6.0; import 'openzeppelin-contracts-06/math/SafeMath.sol'; contract Fallout { using SafeMath for uint256; mapping (address => uint) allocations; address payable public owner; /* constructor */ function Fal1out() public payable { owner = msg.sender; allocations[owner] = msg.value; } modifier onlyOwner { require( msg.sender == owner, "caller is no..
[Ethernaut] Fallout// SPDX-License-Identifier: MIT pragma solidity ^0.6.0; import 'openzeppelin-contracts-06/math/SafeMath.sol'; contract Fallout { using SafeMath for uint256; mapping (address => uint) allocations; address payable public owner; /* constructor */ function Fal1out() public payable { owner = msg.sender; allocations[owner] = msg.value; } modifier onlyOwner { require( msg.sender == owner, "caller is no..
2023.01.29 -
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract Fallback { mapping(address => uint) public contributions; address public owner; constructor() { owner = msg.sender; contributions[msg.sender] = 1000 * (1 ether); } modifier onlyOwner { require( msg.sender == owner, "caller is not the owner" ); _; } function contribute() public payable { require(msg.value < 0.001 ether); contributio..
[Ethernaut] Fallback// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract Fallback { mapping(address => uint) public contributions; address public owner; constructor() { owner = msg.sender; contributions[msg.sender] = 1000 * (1 ether); } modifier onlyOwner { require( msg.sender == owner, "caller is not the owner" ); _; } function contribute() public payable { require(msg.value < 0.001 ether); contributio..
2023.01.29