Skip to content

Commit

Permalink
Added JavaScriptPayload#to_html (closes #138).
Browse files Browse the repository at this point in the history
  • Loading branch information
postmodern committed Aug 15, 2024
1 parent 3a6ff02 commit 80d22df
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 0 deletions.
14 changes: 14 additions & 0 deletions lib/ronin/payloads/javascript_payload.rb
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,20 @@ def self.payload_type
:javascript
end

#
# Wraps the built payload in an HTML
# `<script type="text/javascript">...</script>` element.
#
# @return [String]
#
# @api public
#
# @since 0.3.0
#
def to_html
%{<script type="text/javascript">#{self}</script>}
end

end
end
end
19 changes: 19 additions & 0 deletions spec/javascript_payload_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,23 @@
expect(subject.encoder_class).to be(Ronin::Payloads::Encoders::JavaScriptEncoder)
end
end

describe "#to_html" do
class TestJavaScriptPayloadToHtml < Ronin::Payloads::JavaScriptPayload

def build
@payload = "alert(1)"
end

end

let(:payload_class) { TestJavaScriptPayloadToHtml }
subject { payload_class.new }

it "must wrap the built payload in '<script type=\"text/javascript\">...</script>'" do
expect(subject.to_html).to eq(
%{<script type="text/javascript">#{subject}</script>}
)
end
end
end

0 comments on commit 80d22df

Please sign in to comment.